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

 #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

请您参考如下方法:

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

你应该定义operator<<带有上述签名。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!