C++ 문법
[C++] 추상 클래스
simstealer
2022. 6. 3. 10:23
추상 클래스
- 인스턴스를 만들 수 없는 클래스
class AbstractClass
{
// 아래와 같은 가상 함수를 순수 가상 함수(Pure Virtual Function)라 하며
// 정의는 하지 않고 보통 선언만 한다.
virtual void Foo() = 0;
}
AbstractClass obj; // 컴파일 오류! 추상 타입은 인스턴스를 생성할 수 없다.
// Abstract는 추상 클래스이다.
struct Abstract
{
virtual void Foo() = 0;
};
struct Base : Abstract
{
// 순수 가상 함수를 오버라이딩 하지 않으면
// Abstract::Foo()를 그대로 Base가 갖게 되며,
// Base 또한 추상 클래스가 된다.
};
// Derived는 Foo()를 오버라이딩 하였으므로
// 추상 클래스가 아닌 구체 클래스(Concrete Class)다.
struct Derived : Base
{
void Foo() { }
};
Abstract temp; // 컴파일 오류! Abstract는 추상 타입
Base temp; // 컴파일 오류! Base는 추상 타입
Derived d; // OK. Derived는 구체 타입