継承の概念について疑問があります。私が知っていることを述べています。間違っている場合は訂正してください。
基本クラスのプライベートメンバーは派生クラスに継承されますが、派生クラスは決してそれらにアクセスできません。
基本クラスの保護されたメンバーは派生クラスに継承されますが、派生クラスは直接アクセスできませんが、そのメンバー関数の一部を使用します。
今、次のコードで:
class A
{
protected:
A(const A&){}
A operator=(const A &){}
int t;
public:
A(int r) {t=r;}
A(){t=0;}
};
class B : public A
{
A a;
public:
void make(void)
{
//A b(a); //LINE 1 -------COPY CONSTRUCTOR BEING CALLED ---protected member of base class
cout<<t; //LINE 2 -------protected member of base class
}
};
int main()
{
B b;
b.make();
return 0;
}
なぜLINE1のエラーが発生するのですか?
Aのオブジェクトに対してcopy-constructorを呼び出せないのはなぜですか?
多くの人が事前に感謝します