C++ virtual 多重継承・仮想基本クラス

多重継承

派生クラスは、複数の基本クラスを持つ事が可能です。

派生時の基本的な事柄は、単独継承の時と同じです。

記述例

派生クラスCは、基本クラスAとBから派生。

class C : public A, public B {

クラス定義

};

仮想基本クラス

次のような親子関係の時、
クラスBは、2つの基本クラスを持っていますが、
クラスAの内容が重複して2つ継承してしまう事になります。

このような時のために、解決策が用意されています。

上の例の場合、クラスA1がクラスAを継承する時、
同じく、クラスA2がクラスAを継承する時にキーワードvirtualをつけます。

記述例

class A {  クラス定義  };
class A1 : virtual public A {  クラス定義  };
class A2 : virtual public A {  クラス定義  };
class B : public A1, public A2{  クラス定義  };

キーワードvirtualが付いたクラスを仮想基本クラスと呼びます。