我最近看到了一个我需要帮助的在线测试问题。这不是我正在面试的工作的问题,我只是对答案感到好奇。提前谢谢。
#include <iostream>
class Foo
{
//...
};
void staff(Foo& f)
{
//..
std::out << f << endl; // output Foo object f
}
问题是:
为了正确显示对象,需要定义哪些运算符?
std::ostream& operator <<(std::ostream&)
作为班级Foo
的成员函数
std::streambuf& operator << (std::ostream&, Foo const&)
作为一个独立的,重载的运营商。
void << operator<<(std::ostream& , Foo const&)
独立,超载
std::ostream& operator << (std::ostream&, Foo const&)
独立,超载
void std::operator<<(std::ostream&)
作为班级Foo
的成员函数
答案 0 :(得分:3)
std::ostream& operator << (std::ostream&, Foo const&);
您应该使用上述签名定义operator<<
。