转载地址:http://blog.csdn.net/geekwangminli/article/details/7942126
《C++ Primer》上有这么
一句话令人费解:“派生类如果要访问基类protected成员只有通过派生类对象,派生类不能访问基类对象的protected成员。”而实际上的意思是:
只有在派生类中才可以通过派生类对象访问基类的protected成员。 |
- //只有在派生类中才可以通过派生类对象访问基类的protected成员。
- #include <iostream>
- #include <vector>
- #include <iterator>
- #include <algorithm>
- #include <numeric>
- using namespace std;
- class Base
- {
- protected:
- int i;
- };
- class Derived: public Base
- {
- public:
- void fun(Derived d)
- {
- d.i = 3; //只有在派生类中才可以通过派生类对象访问基类的protected成员。
- }
- };
- int main()
- {
- Derived derived;
- // derived.i = 3; //只有在派生类中才可以通过派生类对象访问基类的protected成员。
- return 0;
- }