私はC++を本当に(本当に)長い時間使っていません。この質問は愚かかもしれませんが、私は本当に助けを必要とします。C++で基本クラスのプライベートメンバーにアクセスする
私の基底クラスにプライベートデータメンバーがあり、派生クラスがパブリックに派生している場合、基本クラスのプライベートメンバーは継承されません。しかし、継承されたパブリック関数を介してアクセスできます。例えば次のように
今class B{
int a,b;
public:
void SetA(int);
int GetA();
};
class D:public B{
public:
SetAAttribute(int x)
{ SetA(x); }
}
、私の質問は: 技術的には、派生クラスのオブジェクトは、それらの上に定義された「」属性を持っていません。素人の言葉では、基本的に、属性が最初に存在しない場合でも、エンティティに属性を設定しています。このような概念を想像するのは直感的ではないようです。私はこれを正しく理解しましたか?
追加の説明や修正があれば幸いです。
'a'属性が存在するため、プライベートであるため直接アクセスできません。 –
基本クラスメンバに継承されるように 'protected'を設定できますが、そうでなければプライベートプロパティがあります。 – chris