1. 추상클래스
추상 클래스는 개념적으로 인스턴스화 할 수 없는 클래스.
즉, 인스턴스를 생성할 수 없는 클래스로, 일반적으로 하나 이상의 순수 가상 함수가 있는 클래스로 구현된다.
순수 가상 함수는 파생 클래스에 의해 재정의되어야 하는 함수이다.
이는 멤버 함수의 선언에서 "= 0"구문을 통해 정의된다.
class AbstractClass
{
virtual void abstractMemberFunction() = 0; // 순수 가상 함수
virtual void abstractMemberFunction1(); // 가상함수
void abstractMemberFunction2();
};
이렇게 순수 가상함수를 1개 이상 가지고 있는 class를 추상 클래스라고 한다.
추상 클래스가 되면 해당 클래스는 인스턴스를 만들 수 없다.
따라서 추상 클래스의 자식 class를 통해 인스턴스를 생성할 수 있다.
2. 인터페이스
인터페이스는 구현이 없다.
즉, 인터페이스 클래스에는 가상 소멸자와 순수 가상함수만 포함된다.
인터페이스 클래스는 다형성 인터페이스, 즉 순수 가상 함수 선언을 기본 클래스로 지정하는 클래스이다.
class IClass
{
public:
virtual ~IClass();
virtual void move_x(int x) = 0;
virtual void move_y(int y) = 0;
virtual void draw() = 0;
};
모든 인터페이스 클래스에는 가상 소멸자가 있어야 한다. 가상 소멸자는 IClass가 다형성으로 삭제 될 때 파생 클래스의 올바른 소멸자가 호출되도록 한다.
'공부' 카테고리의 다른 글
C++ 벡터 (단위/길이/정규화/합연산/곱연산/내적/외적) (0) | 2022.12.15 |
---|---|
C++ 행렬 (단위/영/전치/역/더하기/빼기/곱하기) (0) | 2022.12.14 |
C++ 디자인패턴 - 싱글톤(싱글턴) (0) | 2022.12.12 |
비트연산자 & 쉬프트연산자 (0) | 2022.12.12 |
수학 - 삼각 함수 / 삼각비 (0) | 2022.12.06 |
댓글