《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;
}