Я изучаю С++. В документации docs.microsoft.com/en-us/cpp/cpp/member-access-control-cpp говорится:
Когда вы указываете базовый класс как закрытый, он затрагивает только нестатические члены. Публичные статические члены все еще доступны в производных классах.
Однако следующий код слегка скорректирован из примера, следующего за предыдущим цитатой, вызывает ошибку C2247:
'Base:: y' недоступен, потому что 'Derived1' использует 'private' для наследования с 'Base'.
Я буду признателен за любую помощь в этой ситуации.
class Base
{
public:
int x;
static int y;
};
class Derived1 : private Base
{
};
class Derived2 : public Derived1
{
public:
int ShowCount();
};
int Derived2::ShowCount()
{
int cCount = Base::y;
return cCount;
}