C++派生類物件訪問基類的protected成員

GeekWay發表於2012-09-04

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


相關文章