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;
-
C++のローカルクラス
関数内で宣言されたクラスは、その関数に対してローカルであるため、C++ではローカルクラスと呼ばれます。 ローカルクラスの例を以下に示します。 #include<iostream> using namespace std; void func() { class LocalClass { }; } int main() { return 0; } 上記の例では、func()は関数であり、クラスLocalClassは関数内で定義されています。したがって、ローカルクラスとして知られています。 ローカルクラ
-
C#の継承とは何ですか?
継承により、別のクラスの観点からクラスを定義できます。これにより、アプリケーションの作成と保守が容易になります。これは、コード機能を再利用する機会も提供し、実装時間を短縮します。 継承は、基本クラスと派生クラスの概念に基づいています。クラスは複数のクラスまたはインターフェースから派生させることができます。つまり、複数の基本クラスまたはインターフェースからデータと関数を継承できます。 基本クラスと派生クラスの例を見てみましょう。ここで、Shapeは基本クラスですが、Rectangleは派生クラスです- class Rectangle: Shape { // meth