面试中的c ++运算符重载问题在线测试

时间:2011-03-14 03:16:21

标签: c++ operator-overloading

我最近看到了一个我需要帮助的在线测试问题。这不是我正在面试的工作的问题,我只是对答案感到好奇。提前谢谢。

 #include <iostream>
    class Foo
    {
        //...
    };

    void staff(Foo& f)
    {
        //..
        std::out << f << endl; // output Foo object f
    }

问题是:

为了正确显示对象,需要定义哪些运算符?

  1. std::ostream& operator <<(std::ostream&)作为班级Foo的成员函数

  2. std::streambuf& operator << (std::ostream&, Foo const&)作为一个独立的,重载的运营商。

  3. void << operator<<(std::ostream& , Foo const&)独立,超载

  4. std::ostream& operator << (std::ostream&, Foo const&)独立,超载

  5. void std::operator<<(std::ostream&)作为班级Foo的成员函数

1 个答案:

答案 0 :(得分:3)

std::ostream& operator << (std::ostream&, Foo const&);

您应该使用上述签名定义operator<<