C ++
 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のコンストラクターが自動的に呼び出され、その内容が表示されます。次に、a、b、およびcの値が出力されます。これらはそれぞれクラスA、B、Cのデータメンバーです。このためのコードスニペットは次のとおりです-

C obj;
cout<<"a = "<< obj.a <<endl;
cout<<"b = "<< obj.b <<endl;
cout<<"c = "<< obj.c <<endl;

  1. C++のローカルクラス

    関数内で宣言されたクラスは、その関数に対してローカルであるため、C++ではローカルクラスと呼ばれます。 ローカルクラスの例を以下に示します。 #include<iostream> using namespace std; void func() {    class LocalClass {    }; } int main() {    return 0; } 上記の例では、func()は関数であり、クラスLocalClassは関数内で定義されています。したがって、ローカルクラスとして知られています。 ローカルクラ

  2. C#の継承とは何ですか?

    継承により、別のクラスの観点からクラスを定義できます。これにより、アプリケーションの作成と保守が容易になります。これは、コード機能を再利用する機会も提供し、実装時間を短縮します。 継承は、基本クラスと派生クラスの概念に基づいています。クラスは複数のクラスまたはインターフェースから派生させることができます。つまり、複数の基本クラスまたはインターフェースからデータと関数を継承できます。 基本クラスと派生クラスの例を見てみましょう。ここで、Shapeは基本クラスですが、Rectangleは派生クラスです- class Rectangle: Shape {    // meth