언어/Basic C++

[Basic C++] #12 순수 가상 함수, 추상 클래스

Hardii2 2022. 3. 25. 14:10

 

#1. 개념

 

1. 순수 가상 함수

class SomeClass
{
public:
    SomeClass();
    virtual ~SomeClass();
    virtual void setString(const std::string& inString) = 0;
    virtual std::string getString() const = 0;
};

SomeClass class1;		// 에러 발생 

SomeClass* class1 = nullptr;	// 컴파일 Ok!!
순수 가상 함수란 "=0" 키워드를 통해 함수의 선언부만 작성하고, 자세한 구현 내용은 작성하지 않고 이를 상속하는 하위 계층의 클래스들에게 해당 함수의 구현부 작성을 강제하는 함수입니다.

순수 가상 함수를 선언한 클래스는 추상 클래스라고하며, 오직 순수 가상 함수만 선언한 클래스는 인터페이스 클래스라고 합니다. 이들은 모두 직접적인 생성 작업이 불가능합니다.