Nie można uzyskać dostępu do chronionego elementu klasy bazowej w klasie pochodnej
Mam następujący kod:
struct A {
protected:
A() {}
A* a;
};
struct B : A {
protected:
B() { b.a = &b; }
A b;
};
Dziwnie się nie kompiluje. Sprawcą jestb.a = &b;
przypisanie: zarówno GCC, jak i clang narzekająA()
jest chroniony, co nie powinno być problemem, ponieważ B dziedziczy A. W jakim ciemnym kącie standardu przyszedłem?