[c++] C++에서의 다형성 구현 방법

C++에서는 가상 함수추상 클래스를 사용하여 다형성을 구현할 수 있습니다.

가상 함수 (Virtual Functions)

가상 함수는 파생 클래스에서 재정의할 수 있는 함수로, 부모 클래스에서 정의됩니다.

class Shape {
public:
    virtual void draw() {
        // 기본 구현
    }
};

class Circle : public Shape {
public:
    void draw() override {
        // 원을 그리는 코드
    }
};

class Square : public Shape {
public:
    void draw() override {
        // 사각형을 그리는 코드
    }
};

위의 예시에서 Shape 클래스의 draw 함수는 가상 함수로 선언되어 있습니다. 파생 클래스에서 이를 재정의하여 각자의 도형을 그릴 수 있습니다.

추상 클래스 (Abstract Classes)

추상 클래스는 순수 가상 함수(pure virtual function)를 한 개 이상 가지고 있는 클래스입니다.

class Shape {
public:
    virtual void draw() = 0; // 순수 가상 함수 (pure virtual function)
};

class Circle : public Shape {
public:
    void draw() override {
        // 원을 그리는 코드
    }
};

class Square : public Shape {
public:
    void draw() override {
        // 사각형을 그리는 코드
    }
};

Shape 클래스에서 draw 함수를 순수 가상 함수로 정의하면, Shape 클래스는 추상 클래스가 되며, 이를 상속받는 파생 클래스에서는 반드시 draw 함수를 구현해야 합니다.

C++에서의 다형성 구현 방법에 대한 간략한 설명이었습니다. 추가적으로 궁금한 사항이 있다면 C++의 공식 문서를 참고하시기 바랍니다.