大虾指点下,关于基类,派生类和继承的,C++ PRIMER的疑问
正在看,有个地方表示不懂
class Base {
public:
void basemem(); // public member
protected:
int i; // protected member
// ...
};
struct Public_derived : public Base {
int use_base() { return i; } // ok: derived classes can access i
// ...
};
struct Private_derived : private Base {
int use_base() { return i; } // ok: derived classes can access i
};
struct Derived_from Private : public Private_derived {
// error: Base::i is private in Private_derived
int use_base() { return i; }
};
struct Derived_from_Public : public Public_derived {
// ok: Base::i remains protected in Public_derived
int use_base() { return i; }
};
为啥Derived_from Private的成员函数use_base返回i是错误的?
按我的理解,i也是Derived_from Private的一个private成员,成员函数使用私有成员有什么不对?