2011-07-21 64 views
5

如果我有一個簡單的類具有兩個變量,x和y,以及功能的ToString()返回一個格式化的字符串與數據。當我打電話C++格式的cout <<自動

cout << simpleClass << "\n"; 

任何人都知道一種方式我可以自動調用simpleClass.ToString來返回格式正確的字符串?我猜想有一種方法可以用操作符函數來做到這一點,但我不知道如何做到這一點。

回答

9

如果你問如何定義這樣的操作,

template<class CharT, class TraitsT> 
std::basic_ostream<CharT, TraitsT>& 
operator <<(std::basic_ostream<CharT, TraitsT>& os, SimpleClass const& sc) 
{ 
    return os << sc.ToString(); 
} 
+4

+1:我喜歡你如何實現其在'basic_ostream'對象進行動作的功能,而不僅僅是'cout' –

+0

@Ken:太多人忘記了寬流。 - [ – ildjarn

+0

+1和餅乾 –

2

您定義

std::ostream& operator <<(std::ostream&, const SimpleClass&) 

調用ToString(),路過ostream&,並返回ostream&

相關問題