问题可能是主观的,所以语法是
std::ostream& operator << (std::ostream & o, const SomeClass &a) { return o << a.accessor().. ; }
你通常什么时候为你编写的类定义它,什么时候避免为你的类编写这个友元函数.
如果我想要流一个类,我通常写这个:
std::ostream& operator << (std::ostream& o, const SomeClass& a) { a.print(o); return o; }
然后在SomeClass上打印一个const方法,该方法知道如何将类序列化为流.