C++の継承の種類
C++ では、以下のような種類の継承がサポートされています。
- protected継承:protectedキーワードを使用して、基底クラスと派生クラスの関係を指定する。protected継承では、基底クラスのprotectedメンバは派生クラスでもprotectedになり、privateメンバはアクセス不可となる。
- プライベート継承(Private Inheritance):private キーワードを用いて、基底クラスと派生クラスの関係を指定します。プライベート継承では、基底クラスの public メンバと protected メンバは、派生クラスからは private となり、直接アクセスすることはできません。
- 保護継承:protected キーワードで基本クラスと派生クラスの関係を指定します。保護継承では、基本クラスの public メンバーと protected メンバーは派生クラスで protected になります。
さらに多重継承、仮想継承も存在する
- 多重継承:派生クラスは複数の基底クラスを継承できる。派生クラスの定義で複数の基底クラスをカンマで区切って使用する。
- 仮想継承:ダイヤモンド継承(複数の派生クラスが直接または間接的に同一の共有点クラスを継承している場合)の問題を解決するために使用されます。仮想継承では、基底クラスをキーワードvirtualで宣言することで、派生クラスに共有された基底クラスのサブオブジェクトが1つだけ生成されます。
必要に応じて継承方法を選択して使用できます。