[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
클래스는 Derived1
과 Derived2
클래스로부터 상속받은 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/