Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 다중 상속


다중 상속은 클래스가 둘 이상의 기본 클래스에서 상속할 때 발생합니다. 따라서 클래스는 다중 상속을 사용하여 여러 기본 클래스의 기능을 상속할 수 있습니다. 이것은 C++와 같은 객체 지향 프로그래밍 언어의 중요한 기능입니다.

다중 상속을 보여주는 다이어그램은 다음과 같습니다. -

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;