반응형
추상 클래스(Abstract Class)
- 순수 가상 함수(Pure Virtual Function)
- 함수 구현부가 없고 선언부가 "=0"으로 끝나는 가상함수
- 추상 클래스(Abstract Class)
- 순수 가상 함수가 한개 이상 있는 클래스
- 추상 클래스 특징
- 객체를 만들 수 없음
- 포인터 타입은 만들 수 있음
- 추상클래스로 부터 상속 받은 클래스가 순수 가상함수의 구현부를 제공하지 않으면 추상 클래스
- 추상 클래스의 의도
- 파생 클래스에게 특정 함수를 반드시 구현을 지시하는 것
- 인터페이스
#include <iostream>
#include <vector>
// 추상 클래스
class Shape
{
public:
virtual void Draw() = 0; // 순수 가상함수
};
// 구체 클래스(concerect class)
class Rect : public Shape
{
public:
virtual void Draw() override
{
}
};
int main()
{
Shape* p; // 추상클래스 포인트는 만들 수 있음
Rect r; // 추상 클래스를 상속받은 클래스에서 순수 가상함수를 구현하지 않으면 error
}
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
C++ 함수 바인딩(Function Binding) (0) | 2019.05.12 |
---|---|
C++ 인터페이스(Interface) (0) | 2019.05.12 |
C++ 상속 예제(Polymorphism) (0) | 2019.05.12 |
C++ 오버라이드, 가상함수(Override & Virtual Function) (0) | 2019.05.12 |
C++ 업캐스팅(Up Casting) (0) | 2019.05.12 |