1 friend介绍
friend的中文含义是“友元”,用来在类外部使用该类的private和protected成员。例如,定义MyClass类如下所示
class MyClass
{
public:
MyClass(string name)
{
m_name = name;
}
private:
string m_name;
};
自定义函数ShowName()的定义为
void ShowName(MyClass my)
{
cout << my.m_name << endl;
}
因为m_name是MyClass的私有成员变量,在类外部不能访问该变量,所以编译程序时会报错,其出错信息为“error C2248: “MyClass::m_name”: 无法访问 private 成员”。
2 将函数定义为类的友元
可以在MyClass定义中将函数ShowName()定义为友元,这样就可以在函数中访问类的private成员了。