概述
我们知道,C++的类具有封装和信息隐藏的特性。一般情况下,我们会封装public的成员函数供用户调用,而将成员变量设置为private或protected。但在一些比较复杂的业务情况下,可能需要去访问对象中大量的private或protected成员变量。如果为这些private或protected成员变量都封装public成员函数,无疑是比较麻烦的,有时候还会影响程序的执行效率。此时,友元函数就派上了用场。
这就好比我们的房间安装了一个指纹锁,陌生人是无法进入房间内部的。但我们的好朋友有时候需要去一下房间,此时,可以把好朋友的指纹也录入指纹锁里面。这样,好朋友就可以顺利进入房间了。
基本规则
1、一个类的友元可以是函数(称为友元函数),也可以是另一个类(称为友元类)。
2、要为一个类声明友元时,需要在类声明中友元函数或友元类的前面加上friend关键字。类中友元的位置没有关系,放在public、protected和private均可。
class CBase{friend class CFriend;// 友元类friend void FriendFunc(CBase &base); // 友元函数public:CBase();private:void Show();protected:std::string m_strText;private:int m_nNumber;};CBase::CBase() : m_strText("CSDN"), m_nNumber(66){NU