友元,使非成员函数可以访问类内私有属性。
- 语法:friend+函数声明(函数类型+函数名称)
-
//家建筑 class Building { //有一个全局函数 作为本类的友元函数,可以继续访问到私有内容 friend void goodGay(Building& building); public: Building() { this->m_BedRoom = "卧室"; } private: //卧室 string m_BedRoom; };
1.语法:friend+类声明(class+类名称)
2.
class goodGay
{
public:
goodGay();
void visit();
private:
Building* building;
};
//家建筑
class Building
{
//告诉编译器 goodGay类是本类的好朋友,可以访问到里面私有成员
friend class goodGay;
public:
Building();
private:
//卧室
string m_BedRoom;
};
1.写法:friend+成员函数声明(函数类型+类名称+::+成员函数名称)
2.
class goodGay
{
public:
goodGay();
void visit();//visit 可以访问到Building中私有属性
void visit2();//visit2 不可以访问到Building中私有属性
private:
Building* building;
};
//家建筑
class Building
{
friend void goodGay::visit();
public:
Building();
public:
//客厅
string m_SittingRoom;
private:
//卧室
string m_BedRoom;
};