[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)를 정의할 수 있으며, 파생 클래스에서 이를 각각의 방식으로 구현할 수 있습니다.

순수 가상 함수로 정의된 함수는 해당 클래스를 인스턴스화 할 수 없게 만듭니다.

참고문헌: