假设它们没有作为 friend
函数实现。
class Foo
{
// in here?
ostream& operator<<( ostream&, const Foo & );
};
或
class Foo
{
};
// out here?
ostream& operator<<( ostream&, const Foo & );
为什么?
最佳答案
将它们声明为非成员友元函数或在 Foo 的周围名称中声明。您的第一个示例缺少关键要素: friend 。
原因是 C++ 查找要调用的函数(以及操作符)的方式:参数相关查找。
关于c++ - 流插入/提取运算符重载函数的原型(prototype)属于哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16258622/