class A {
public:
int a;
};
class B: private A {
};
class C: public A {
};
class D: public B, public C {
D() {
B::a = 0;
}
};
これは、B が非公開で A を継承していてもコンパイルされます。D の C の継承を削除すると、予想どおり、コンパイラは a にアクセスできないと言います。C の継承は私のコンパイラを混乱させますか?
コンパイラは gcc 4.4.7