(1)成员函数做友元实际上和全局函数做友元以及类做友元有异曲同工之妙,话不多说上代码!
【1】这个代码和上一个友元类代码很相似
#include<bits/stdc++.h>
using namespace std;
class Building;
class GoodGay{
public:
GoodGay();
void visit01();//访问客厅
void visit02();//访问卧室
Building *building;
};
class Building{
friend void GoodGay::visit02();//要加上GoodGay的作用域,不然它就是全局函数的友元
public:
Building();
public:
string m_SittingRoom;
private:
string m_BedRoom;
};
Building::Building(){
m_SittingRoom="客厅";
m_BedRoom="卧室";
}
GoodGay::GoodGay(){
building= new Building;
}
void GoodGay::visit01(){
cout<<"好基友正在访问: "<<building->m_SittingRoom<<endl;
}
void GoodGay::visit02(){
cout<<"好基友正在访问:"<<building-> m_BedRoom<<endl;
}
void test01(){
GoodGay gg;
gg.visit01();
gg.visit02();
}
int main()
{
test01();
}

同样关键点为:friend void GoodGay::visit02()