[C ++] C ++公共、保護された、プライベートの区別で

まず:プライベート、パブリック、保護されたアクセス範囲:

プライベート:だけ関数のクラスによってアクセスのフレンド関数は、このクラスのオブジェクトにアクセスすることはできません、他のどのアクセスすることはできません。

保護:このクラスは、サブクラスの関数であってもよいだけでなく、友人にアクセスするための機能は、このクラスのオブジェクトへのアクセスすることはできません。

国民はこのクラスの関数であってもよい、友人にアクセスするための機能をサブクラス機能は、クラスのオブジェクトによってアクセスすることができます。

第二:クラスのメソッドは、属性変更を継承します。

private継承、サブクラスでプライベートになり、すべての親クラスを使用します。

保護継承、保護、および親クラスのパブリックメソッドをサブクラスで保護された状態になる、同じのプライベートメソッドを使用します。

公共の継承、メソッドを使用して、親クラスのプロパティは変更されません。

アクセス3種類の

公共:アクセス可能な任意のエンティティ

保護:アクセスのみに機能のクラスとサブクラスのメンバーを許可します

プライベート:唯一のクラスのメンバーの機能にアクセスすることができます

相続の三種類

公共の継承

継承を守ります

private継承

組み合わせ結果

基底クラスの継承サブクラス

パブリック&公共の継承=>公共

パブリック&保護継承=>保護

パブリック&プライベート継承=>プライベート


保護&公共の継承=>保護

保護&保護继承=>保護

保護&private継承=>プライベート


プライベート&パブリック継承=>サブクラスはアクセスできません。

プライベート&保護継承=>サブクラスはアクセスできません。

プライベート&プライベート継承=>サブクラスはアクセスできません。

 

結果は、上記の組成物からわかります

1、公共の継承は、基底クラスのメンバのアクセス権を変更しません。

2、民間の継承は、サブクラスでは、基本クラスのすべてのメンバーへのアクセスがプライベートになっ可能に

保護された3は、サブクラスのパブリックメンバーの保護されたメンバー、同じアクセス権の他のメンバーになる基底クラスを継承します。

4は、基底クラスのプライベートメンバーは、サブクラスは永遠にアクセスできない方法に影響を与える継承されません。

プライベート継承を使用する場合に加えて、別のメカニズムがあります:アクセスを許可します。

我々はすでに基底クラス内のプライベートな方法で継承されたとき、そのpublicおよびprotectedメンバーは、サブクラス内のプライベートメンバになる、ということを知っています。いくつかのケースでは、しかし、サブクラスでの必要性は、一人の以上のメンバー継承する基底クラスでのアクセスを復元します

 

C ++は、この目的を達成する2つの方法をサポートしています

この方法では、ステートメントを使用して、これはC ++標準が推奨される方法です

基底クラスの形式でステートメントにアクセスするために使用される第二の方法::部材と、宣言にアクセスするためのサブクラスの適切な位置。(のみ元のアクセスを復元するには、注意が、アクセスを増減することはできません)

おすすめ

転載: www.cnblogs.com/shiyublog/p/10996062.html