구체 클래스
- 함수의 구현체가 있는 클래스
추상 클래스
- 구현이 되어있지 않은 함수(순수 가상 함수)를 가진 클래스
// Animal.h
class Animal
{
public:
virtual ~Animal();
virtual void Speak() = 0; // 구현하지 않겠다는 의미. 순수 가상 함수라고 불린다.
private:
int mAge
};
//Cat.h
class Cat : public Animal
{
public:
~Cat();
void Speak();
private:
char *mName;
};
→ Animal은 추상 클래스이고 Cat은 구체 클래스이다.
순수 가상 함수
- 구현체가 없는 멤버 함수
- 파생 클래스가 구현해야 한다.
- virtual void Speak() = 0; 이 함수를 구현하지 않으면 컴파일 에러가 난다.
- 추상 클래스에서 개체를 만들 수 없다.
- 추상 클래스를 포인터나 참조형으로 사용할 수 있다.
'Language > C++' 카테고리의 다른 글
[C++] 24.Unmanaged Programming: 형변환(Casting) (0) | 2024.01.30 |
---|---|
[C++] 23.Unmanaged Programming: 인터페이스(Interface) (0) | 2024.01.30 |
[C++] 21.Unmanaged Programming: 다중 상속 (1) | 2024.01.30 |
[C++] 20.Unmanaged Programming: 가상 소멸자 (0) | 2024.01.30 |
[C++] 19.Unmanaged Programming: 다형성(Polymorphism) (0) | 2024.01.30 |