美文网首页
C++ 友元,关键词friend介绍

C++ 友元,关键词friend介绍

作者: 美玉东番 | 来源:发表于2019-08-17 02:18 被阅读0次

            类(class)在外部不容易访问其私有成员,而友元声明却让这个操作变得如此简单,下来咱们来看看到底怎么个简单法。

    友元函数:

            首先,友元函数是一个函数,是指一个类,在内部声明外部普通函数为自己的友元函数,则这个普通函数具备了和这个类的友元关系。这个单向声明的关系,只具备单向的能力,即类声明该函数作为自己友元,通过该函数可以访问该类生成的对象的成员,甚至是私有成员。

            基本介绍,到此结束,下面我们来看看代码的具体实现过程。

    友元函数声明

            外部通常无法处理类内私有成员,然声明非成员函数作为自己友元,则具备了处理该类私有成员的权限。实现过程就是在类内声明类外部函数,并在最前端添加friend关键词,作为声明友元的标志。请观察图中代码实现。

    函数形参为引用

            值得注意的是,函数形参为引用类型,即函数内部处理需要获取被处理数据地址,而别名引用的操作可以达到这样的目的。

    友元声明及函数实现

            观察图,可知类内用friend声明友元函数,并且函数是类外普通函数,通过参数引用形式修改内部私有成员,这就是类和友元函数的具体定义过程了。

    友元函数的作用

            有前面的代码中,我们知道友元函数修改并打印了类的私有成员变量。这是友元函数具备的特有能力。黄色警示意为必须类内声明友元才能处理类内成员,否则是不可行的。

    实例化和函数调用

            这点代码就是主函数中的类的实例化,和友元函数的调用,我们知道它修改并打印了类的私有成员变量regVar。

            friend函数的典型用例是友元函数们(多个)可以处理不同(多个)的类的私有成员。

            相似的,也可以声明友元类,通过一个类操作另一个类,不过个人感觉不常用,就不再赘述了,想了解的自己去查一下。

    ––共享知识,迎接未来,我是美玉东番。

    相关文章

      网友评论

          本文标题:C++ 友元,关键词friend介绍

          本文链接:https://www.haomeiwen.com/subject/jdzcsctx.html