weixin_53650092
2021-05-06 13:07
采纳率: 72.7%
浏览 92

C++ 友元,一个类中的成员函数访问另一个类中的私有属性,请大佬解惑。

代码如下:

#include <iostream>
#include<string>
using namespace std;
class Building {
	//friend void GoodGirl::visit();
private:
	string badRoom;
public:
	string sittingRoom;
	Building() {
		badRoom = "卧室";
		sittingRoom = "客厅";

	}
};
class GoodGirl {

public:
	Building *b1;
	GoodGirl() {
		b1 = new Building();
	}
	void visit() {

		cout << b1->sittingRoom << endl;
	}

};

void test01() {
	GoodGirl b1;
	b1.visit();
}
int main() {
	test01();
	

	system("pause");
	return 0;
}

这段代码可以正常运行,但是当我把注释//friend void GoodGirl::visit();去掉,把这一行加入代码以后,就报错了,

我本意是使GoodGirl中的visit()函数可以访问Building中的badRoom属性,这下还没开始访问呢,就加了个友元而已,就报错了,我实在是不知道是什么原因,我照着老师的代码敲的,为什么我自己运行不了,我用的是VS2017,和环境有关系吗?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

4条回答 默认 最新

相关推荐 更多相似问题