美文网首页
友元(friends)

友元(friends)

作者: 吃柠檬的鸮 | 来源:发表于2019-05-27 23:37 被阅读0次

    定义:类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。
    友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。
    如果要声明函数为一个类的友元,需要在类定义中该函数原型前使用关键字 friend

    允许合理使用友元类及友元函数。

    通常将友元定义在同一文件下,这样可以避免读者跑到其他文件中查找其对某个类私有成员的使用。
    经常用到友元的一个地方是将 FooBuilder 声明为 Foo 的友元,FooBuilder 以便可以正确构造 Foo 的内部状态,而无需将该状态暴露出来。某些情况下,将一个单元测试用类声明为待测类的友元会很方便。

    友元延伸了(但没有打破)类的封装界线,当你希望只允许另一个类访问某个成员时,使用友元通常比将其声明为 public 要好得多。当然,大多数类应该只提供公共成员与其交互。

    相关文章

      网友评论

          本文标题:友元(friends)

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