基底クラス・メンバーのアクセス制御

C++派生クラスの宣言においては、派生クラスの基底リストの中の各基底クラスの前に、アクセス指定子を置くことができます。 これによって、基底クラスから見たときの基底クラスの各メンバーのアクセス属性は、変更されませんが、 派生クラスが、基底クラスのメンバーへのアクセス制御を制限できるようになります。

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
{ };

クラスのメンバーおよびフレンドは、そのクラスのオブジェクトに対する ポインターを暗黙的に次のいずれかに対するポインターに変換することが できます。

関連参照

IBM Copyright 2003