派生クラスの宣言においては、派生クラスの基底リストの中の各基底クラスの前に、アクセス指定子を置くことができます。
これによって、基底クラスから見たときの基底クラスの各メンバーのアクセス属性は、変更されませんが、
派生クラスが、基底クラスのメンバーへのアクセス制御を制限できるようになります。
3 つのアクセス指定子のいずれかを使用して、クラスを派生させることができます。
すべての場合において、基底クラスの private メンバーは private のままです。 基底クラスの private メンバーは、基底クラス内のフレンド宣言において、 明示的にアクセスを認可されている場合でなければ、派生クラスから使用することはできません。
次の例では、クラス d は、クラス b から public に派生します。 クラス b は、この宣言により、public 基底クラスに宣言されます。
class b { }; class d : public b // public derivation { };
構造とクラスの両方を、派生クラス宣言の基底リストの中の基底クラスとして 使用することができます。
次の例では、基本リストで使用されるアクセス指定子がなく、 派生クラスがキーワード class で宣言されているので、 デフォルトで private の派生が使用されます。
struct B { }; class D : B // private derivation { };
クラスのメンバーおよびフレンドは、そのクラスのオブジェクトに対する ポインターを暗黙的に次のいずれかに対するポインターに変換することが できます。
関連参照