友元函数
在c++中对类的成员设置了保护,如private和protected是不允许外部访问的,有时候有一个外部函数就是需要访问,为了解决这个问题,c++开了个后门,就是友元函数,友元函数就是将外部函数在类中进行申明,声明时前面添加friend关键字,将其声明为类的友元函数后就可以任意访问类中成员。示例如下:
class person
{
public:
string name;
private:
int age;
friend void print(person p); //将print声明为友元函数
};
void print(person p)
{
cout << "name: " <<p.name ; //调用对象的public权限成员
cout << " age: " <<p.age ; //调用对象的private权限成员
}
友元函数的声明位置不限制,可以是在public也可以是在private和protected。
友元函数是不带this指针的,所以不能直接访问类中的变量,只能通过形参传参访问。