C++类成员函数作友元 私有权限下的类成员不能作为友元

C++类成员函数作友元

class Building {
	void printRst();//此时printRst()访问权限为private
public:
	Building() {
		printRst();
	}
};
class Rooms {
	friend void  Building::printRst();//成员函数做友元
public:
	string bedroom;
	Rooms(string bed, string living) :bedroom(bed), livingRoom(living) {}//初始化列表
private:
	string livingRoom;
};
void Building::printRst() {
	Rooms r2("lihao", "baiming");
	cout <<"类成员函数做友元:"<< r2.livingRoom;
}
int main(){
	Building b;
	system("pause");
	return 0;
}

##1. 程序运行报错,显示printRst()无法访问Rooms中的私有成员
##2. 当调整Building中的printRst()函数为public权限时可正常访问
结论:类的私有成员函数不能成为另一个类的友元对象

你可能感兴趣的:(c++,开发语言,后端)