I'm learning C++. The documentation learn.microsoft.com/en-us/cpp/cpp/member-access-control-cpp says:
When you specify a base class as private, it affects only nonstatic members. Public static members are still accessible in the derived classes.
However, the following code slightly adjusted from the example following the previous quote cause error C2247:
'Base::y' not accessible because 'Derived1' uses 'private' to inherit from 'Base'.
I will appreciate any help with this situation.
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;
}