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