友元函数或友元类
在类A中记录了那些函数或者类可以访问类A 的私有或保护成员。
所以要在A中记录谁谁谁是我的朋友,可以反问我的私有或保护成员。
如果是友元函数,那就是普通函数,并不属于类A,声明在类A中,定义在类A外
如果是友元类,那就是友元类B定义在类A中,B的所有函数都可以访问类A的私有或保护成员。
class B{
private: int foo(A a ){ return a.c}; //a的私有成员c本来是不可访问的
}
class A
{
private: int c;
friend B
friend void f(A a);
}
void f(A a){
return a.c; //a的私有成员c本来是不可访问的
}