friend函数访问2个类的对象的私有成员

来源:互联网 发布:rete算法 编辑:程序博客网 时间:2024/05/16 10:00

用friend可以让一个函数访问一个类的对象的私有成员,如果想让一个函数访问2个类的对象的私有成员,则必须在第2个类中也声明该函数为友元函数
(1)CA.h:

class CB;//前向声明使用CB类
class CA
{
public:
 friend void FUNC( CA* pa, CB* pb);//友元函数
}
---------------------
(2)CB.h:
 
class CA;//前向声明使用CA类
class CB
{
public:
 
 friend void FUNC( CA* pa, CB* pb);//友元函数
}
---------------------
(3)CA.cpp:
void FUNC( CA* pa, CB* pb){}//友元函数的实现
---------------------------------------------------------------

总结:
一个普通函数可以是(多个)类的友元函数。这类普通函数的参数都有类的对象,从而通过该对象,操作该类的私有成员,该函数被当作全局函数。