Я новичок в C ++.И у меня сегодня тест по программированию.Но я не могу понять эти примеры.
class A
{
public:
int w;
};
class B : public A
{
public:
int x;
};
class C : private A
{
public: int y;
};
class D : protected B
{
public: int z;
};
int main()
{
D d;
d.w = 10; // compile error
}
Я думал (D d; dw = 10) правильно, но он имеет ошибку компиляции.
D, полученный из B (защищенный), и B, полученный из A (открытый).Итак, я думаю, что D может получить доступ к члену класса A, потому что
Класс B: public A {public: int x} ==> Class B {public: int w;int x;}
и класс D: защищенный B {public: int z} ==> class D {public: int z;защищено: int w, int x;}
Почему я ошибаюсь ??Спасибо!