这两句话看的太头晕了,其实作者应该是想表达:只有在派生类中才可以通过派生类对象访问基类的protected成员。看这样的代码:
class Base { public: Base(); private: void foo(); protected: int m; }; class Derive : public Base { public: Derive(); }; Derive::Derive() { this->m = 1; // 这里访问m没有问题 }
使用类的代码:
Derive *d = new Derive(); std::cout<< d->m <<endl; // 这里就报错了
还是上面的两个类,只看public和private,如下代码:
Base *b = new Base(); b->test_pub(); // 通过 b->foo(); // 报错 std::cout<< b->m; // 报错
protected继承和private继承能降低访问权限:
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218307.html原文链接:https://javaforall.net
