c++面试在线测试中的操作员过载问题

发布于 2024-10-21 22:24:54 字数 839 浏览 1 评论 0原文

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

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

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

问题是:

需要定义哪些运算符才能正确显示对象?

  1. std::ostream&运算符 <<(std::ostream&) 作为类 Foo

    的成员函数
  2. std::streambuf&运算符 << (std::ostream&, Foo const&) 作为独立的重载运算符。

  3. <代码>无效<<运算符 <<(std::ostream& , Foo const&) 作为独立的重载

  4. std::ostream&运算符 << (std::ostream&, Foo const&) 作为独立的、重载的

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

I recently saw an interview online test question that I need help with. This is not a question for a job I'm interviewing for, I was just curious about the answer. Thanks in advance.

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

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

The question was:

What operators need to be defined in order to show object properly?

  1. std::ostream& operator <<(std::ostream&) as a member function of class Foo

  2. std::streambuf& operator << (std::ostream&, Foo const&) as a stand alone, overloaded operator.

  3. void << operator<<(std::ostream& , Foo const&) as a stand alone, overloaded

  4. std::ostream& operator << (std::ostream&, Foo const&) as a stand alone, overloaded

  5. void std::operator<<(std::ostream&) as a memeber function of class Foo

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

长伴 2024-10-28 22:24:54
std::ostream& operator << (std::ostream&, Foo const&);

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

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

You should define operator<< with the above signature.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文