[c++] 다중 상속을 사용한 다형성의 구현

다중 상속

다중 상속은 한 클래스가 둘 이상의 클래스로부터 상속받는 것을 말합니다. C++에서는 이러한 다중 상속이 가능합니다.

가상 함수와 다형성

C++에서 다형성을 구현하기 위해 가상 함수를 활용합니다. 가상 함수를 선언하는 방법은 다음과 같습니다.

class Base {
public:
    virtual void show() {
        std::cout << "Base\n";
    }
};

class Derived1 : public Base {
public:
    void show() {
        std::cout << "Derived1\n";
    }
};

class Derived2 : public Base {
public:
    void show() {
        std::cout << "Derived2\n";
    }
};

다중 상속과 다형성

다중 상속을 통해 두 개 이상의 클래스로부터 상속받은 파생 클래스에서 가상 함수를 오버라이딩하면, 다형성을 구현할 수 있습니다.

class Derived3 : public Derived1, public Derived2 {
public:
    void show() {
        std::cout << "Derived3\n";
    }
};

위의 예제에서 Derived3 클래스는 Derived1Derived2 클래스로부터 상속받은 show 함수를 오버라이딩하여 자신의 동작을 정의하고 있습니다.

이제, 아래의 코드를 통해 다중 상속과 다형성을 확인할 수 있습니다.

int main() {
    Derived3 d3;
    Base* b = &d3;
    b->show(); // 출력: "Derived3"
    return 0;
}

요약

다중 상속과 가상 함수를 활용하여 C++에서 다형성을 구현할 수 있습니다. 이를 통해 클래스 간의 유연한 관계를 형성하고, 객체 지향 프로그래밍의 장점을 최대한 활용할 수 있습니다.

참고 문헌: https://www.learncpp.com/cpp-tutorial/112-multi-level-inheritance-and-diamond-problem/