2011-03-14 59 views
2

我最近看到一個採訪在線測試問題,我需要幫助。這不是我面試的工作的問題,我只是對答案感到好奇。提前致謝。C++操作符重載問題在面試在線測試

#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&)作爲類的memeber功能Foo

+0

(註釋已失效;已刪除) – 2011-03-14 08:03:06

回答

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

你應該定義帶有上述簽名的operator<<

+2

@Downvoter:爲什麼選擇downvote? – Nawaz 2011-03-14 03:24:39

+4

我同意。我不知道爲什麼這個問題也沒有結束。它似乎完全適用於任何C++程序員。 – dappawit 2011-03-14 03:28:37