C++中类的主要特点之一就是数据隐藏,即类的私有成员无法在类的外部访问。但是,如果一个函数它是一个类的友元函数,那么这个函数可以在类外访问类的全部成员,包括私有成员。
友元的语法与特点:
1.友元函数用friend关键字声明,且friend关键字只出现在声明处;
2.友元函数不是类的成员,不带this指针;
3.友元函数可访问任意属性的成员
class person
{
public:
int age;
friend void fun(person& per);//函数声明加friend
private:
int weight;
};
void fun(person& per)//函数定义,不用加friend
{
per.age = 30;
per.weight = 65;//友元函数可以访问并修改类内的任何变量
}
void test()
{
person per;
fun(per);
cout << per.age << endl;
}