友元的目的是让一个函数或者一个类可以访问另一个类中的私有成员。
友元的关键字为friend
友元的三种实现
- 全局函数做友元
- 类做友元
- 成员函数做友元
1、全局函数做友元
#include <iostream>
#include <string>
using namespace std;
class Building{
//goodGay全局函数是 Building的好朋友 , 可以访问Building中的私有成员
friend void goodGay(Building *building);
public:
string m_SittingRoom; //客厅
private:
string m_BedRoom; //卧室
public:
Building(){
m_SittingRoom = "客厅" ;
m_BedRoom = "卧室" ;
}
};
//全局函数
void goodGay(Building *building){
cout << "好基友全局函数正在访问 :" << building->m_SittingRoom << endl;
cout << "好基友全局函数正在访问 :" << building->m_BedRoom << endl;
}
void test01(){
Building building;
goodGay(&building);
}
int main(){
test01();
return 0;
}
2、类做友元
friend class goodGay;
3、成员函数做友元
friend void goodGay::visit(Building *building);