高级程序设计

8 - 友元

2020-03-05 14:30 CST
2020-03-14 22:29 CST
CC BY-NC 4.0

什么是友元

根据数据封装的要求,类中定义的数据不能从外界直接访问,必须要通过public成员函数进行访问。在一些情况下,这种访问方式效率不高。

为了提高在类的外部对类数据成员的访问效率,

  • 可以指定某些与一个类密切相关的,又不适合作为成员的程序实体可以直接访问类的非public成员,这些实体被称为友元。
  • 友元是数据保护和数据访问效率之间的折衷方案。

友元需要在相应的类中用关键词friend显式指出。友元可以是全局函数、其他的类或其他类的成员函数。

友元关系具有不对称性,也不具有传递性。