[c++] 순수 가상 함수(pure virtual function)
다음의 예시 코드를 통해 순수 가상 함수를 보여드리겠습니다.
class Shape {
public:
virtual void draw() = 0; // 순수 가상 함수
};
class Circle : public Shape {
public:
void draw() {
// 원 그리는 코드
}
};
class Square : public Shape {
public:
void draw() {
// 사각형 그리는 코드
}
};
위 코드에서 Shape
클래스 내 draw
함수는 순수 가상 함수로 선언되었습니다. 이 함수는 각각의 파생 클래스에서 구현되어야 합니다. 그리고 Circle
클래스와 Square
클래스에서 draw
함수를 오버라이딩하여 구현하였습니다.
순수 가상 함수를 통해 추상 클래스(abstract class)를 정의할 수 있으며, 파생 클래스에서 이를 각각의 방식으로 구현할 수 있습니다.
순수 가상 함수로 정의된 함수는 해당 클래스를 인스턴스화 할 수 없게 만듭니다.
참고문헌:
- https://en.cppreference.com/w/cpp/language/abstract_class