c++ - 什么时候必须使用友元函数而不是成员函数?

标签 c++ class friend

当友元函数肯定比成员函数更好时,任何人都可以给我一个条件吗?或者只是我们可能使用友元函数而不是成员函数的一些原因。非常感谢。

最佳答案

一种情况(可能是典型情况)是当您尝试重载 << 时运算符来打印您的类(class)成员。您根本无法将其重载为 member function因为第一个参数必须是 ostream 的对象。您必须使用friend功能。

根据 Scott Myers 的《Effective C++ Item23》:

Prefer non-member non-friend functions to member functions. Doing so increases encapsulation, packaging flexibility, and functional extensibility.

关于c++ - 什么时候必须使用友元函数而不是成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16756034/

相关文章:

java - 为什么Java中Integer类的2个对象不能相等

c++ - friend 调用虚拟私有(private)方法 - 应该发生什么

c++ - 如何从另一个其父类是该数据类的友元类的派生类访问该数据类的私有(private)成员变量?

c++ - 隐藏的 friend : declarations and definitions

c++ - Winsock 的 send() 工作异常

C++:创建对象时程序崩溃

c++ - 使用 C++ 将 UDP 数据包存储在结构中

C++ 命名空间 ofstream 不会写

c# - 面向对象设计

ios - 使用 Class/Struct in collection Cell inside collection Cell for future pass data