class A,B,C,D
A がベースで、B、C がその間にあり、D がダイヤモンド モデルで派生した場所があるとします。
ノート:
class B
プライベートモードでvirtualyclass A
を継承し、
class C
保護モードでvirtualyclass A
を継承します。
class A
{
public:
int member; // note this member
};
class B :
virtual private A // note private
{
};
class C :
virtual protected A // note protected
{
};
class D :
public B, // doesn't metter public or whatever here
public C
{
};
int main()
{
D test;
test.member = 0; // WHAT IS member? protected or private member?
cin.ignore();
return 0;
}
メンバーのインスタンスを作成すると、class D
メンバーはどうなるでしょうか。プライベートまたは保護された笑?
フィギュア No2:
そのようにするとどうなるでしょうか:
class B :
virtual public A // note public this time!
{
};
class C :
virtual protected A // same as before
{
};
member
この2番目の例では公開されると思いますよね?