class Base {
public:
class FirstBase {
friend class Base;
int x = 10;
};
class SecondBase : public FirstBase {
public:
SecondBase() : FirstBase() {}
void t() { std::cout << FirstBase::x; }
};
};
This code compiles and works, but I don't understand why it works. Can explain or cite sources to read?
I use gcc version 11.4.0 std=C++17