1.目的:让一个函数或者类访问另一个类中的私有成员
2.关键字:friend
3.友元的三种实现:
- 全局函数做友元
- 类做友元
- 成员函数做友元
#include<iostream>
using namespace std;
#include<string>
class Home
{
// goodfriend全局函数是Home的好朋友,可以访问Home中的私有成员
friend void goodfriend(Home *home);
public:
Home()
{
m_sittingroom = "客厅";
m_bedroom = "卧室";
}
public:
string m_sittingroom;
private:
string m_bedroom;
};
void goodfriend(Home *home)
{
cout << "好朋友全局函数正在访问:" << home->m_sittingroom << endl;
cout << "好朋友全局函数正在访问:" << home->m_bedroom << endl;
}
void test1()
{
Home home;
goodfriend(&home);
}
int main()
{
test1();
system("pause");
return 0;
}