Вопрос о перегрузке оператора c ++ в онлайн-тесте интервью - PullRequest
2 голосов
/ 14 марта 2011

Я недавно видел вопрос об онлайн-опросе, с которым мне нужна помощь. Это не вопрос работы, на которую я беру интервью, мне просто было любопытно получить ответ. Заранее спасибо.

 #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 Ответ

3 голосов
/ 14 марта 2011
std::ostream& operator << (std::ostream&, Foo const&);

Вы должны определить operator<< с вышеуказанной подписью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...