다중 상속은 클래스가 둘 이상의 기본 클래스에서 상속할 때 발생합니다. 따라서 클래스는 다중 상속을 사용하여 여러 기본 클래스의 기능을 상속할 수 있습니다. 이것은 C++와 같은 객체 지향 프로그래밍 언어의 중요한 기능입니다.
다중 상속을 보여주는 다이어그램은 다음과 같습니다. -
C++에서 다중 상속을 구현하는 프로그램은 다음과 같습니다. -
예시
#include <iostream> using namespace std; class A { public: int a = 5; A() { cout << "Constructor for class A" << endl; } }; class B { public: int b = 10; B() { cout << "Constructor for class B" << endl; } }; class C: public A, public B { public: int c = 20; C() { cout << "Constructor for class C" << endl; cout<<"Class C inherits from class A and class B" << endl; } }; int main() { C obj; cout<<"a = "<< obj.a <<endl; cout<<"b = "<< obj.b <<endl; cout<<"c = "<< obj.c <<endl; return 0; }
출력
위 프로그램의 출력은 다음과 같습니다 -
Constructor for class A Constructor for class B Constructor for class C Class C inherits from class A and class B a = 5 b = 10 c = 20
위의 프로그램에서는 클래스 A와 B가 정의되어 있습니다. 이것은 다음과 같습니다 -
class A { public: int a = 5; A() { cout << "Constructor for class A" << endl; } }; class B { public: int b = 10; B() { cout << "Constructor for class B" < endl; } };
클래스 C는 클래스 A와 B 모두에서 상속됩니다. 다중 상속의 예입니다. 클래스 C 정의는 다음과 같습니다. -
class C: public A, public B { public: int c = 20; C() { cout << "Constructor for class C" << endl; cout<<"Class C inherits from class A and class B" << endl; } };
main() 함수에는 클래스 C의 객체 obj가 정의되어 있습니다. 클래스 A, B 및 C의 생성자가 자동으로 호출되고 해당 내용이 표시됩니다. 그런 다음, b 및 c의 값이 인쇄됩니다. 이들은 각각 클래스 A, B 및 C의 데이터 멤버입니다. 이에 대한 코드 조각은 다음과 같습니다 -
C obj; cout<<"a = "<< obj.a <<endl; cout<<"b = "<< obj.b <<endl; cout<<"c = "<< obj.c <<endl;