C++友元分为:
一、友元函数
1、可以访问类的私有成员
2、它是非成员函数,只是在类中声明
3、可以声明在public部分,也可以声明在private部分,没有区别
4、可以是多个类的友元,只要在类中声明即可
class A{
...
friend TYPE func(....);
private:
int a;
}
在函数func中可以直接访问a这个私有变量
二、友元类
class A{
public:
friend class B;
....
}
这样B就可以直接访问A的私有成员
三、友元成员函数
class A{
public:
void test(B &);
}
class B{
public:
friend void A::test(B &);
private:
int a;
}
这样A的test这个成员函数就可以直接访问B类的私有成员a