C++友元函数和友元类(C++ friend关键字)

C++友元函数和友元类(C++ friend关键字)

友元  friend
    我们知道私有成员只能自己可以访问,这样一刀切很不灵活。
    因此,友元机制 是对 类的封装性的一个补充。


    一个类允许与它有 友元 关系的 函数 或类  直接访问其私有或保护信息。
    友元分两种:
        (1)友元函数
        如果一个函数想直接访问一个类的私有/保护成员,那么这个类只需要向编译器做友元
    声明即可:
        friend  函数返回类型  函数名(参数列表);
        注意:  友元函数必须在类里声明,在类外实现!

        (2)友元类
        如果一个类A中所有的成员函数都想去访问一个类B的隐藏信息,那么只需要在类B做一个
    友元类的声明即可。
            friend class 类名;

        注: 友元关系是单向的:如果类A是类B的朋友,但不代表类B是类A的朋友。
            友元关系是不可传递的:如果类A是类B的朋友,类B是类C的朋友,但不代表类A和类C是朋友。
eg.

class A
{
    int familyNUM;
public:
    A(int x)
    {
       familyNUM=x; 
    }
     friend void check(A &a); //友元函数声明
};

void check(A &a)
{
    cout << a.familyNUM <<endl;
}

int main()
{
    A a(1);
    check(a); //输出  1
}

上一篇:[C++]友元函数


下一篇:Linux samba 创建共享盘