5
如果我有一個簡單的類具有兩個變量,x和y,以及功能的ToString()返回一個格式化的字符串與數據。當我打電話C++格式的cout <<自動
cout << simpleClass << "\n";
任何人都知道一種方式我可以自動調用simpleClass.ToString來返回格式正確的字符串?我猜想有一種方法可以用操作符函數來做到這一點,但我不知道如何做到這一點。
如果我有一個簡單的類具有兩個變量,x和y,以及功能的ToString()返回一個格式化的字符串與數據。當我打電話C++格式的cout <<自動
cout << simpleClass << "\n";
任何人都知道一種方式我可以自動調用simpleClass.ToString來返回格式正確的字符串?我猜想有一種方法可以用操作符函數來做到這一點,但我不知道如何做到這一點。
如果你問如何定義這樣的操作,
template<class CharT, class TraitsT>
std::basic_ostream<CharT, TraitsT>&
operator <<(std::basic_ostream<CharT, TraitsT>& os, SimpleClass const& sc)
{
return os << sc.ToString();
}
您定義
std::ostream& operator <<(std::ostream&, const SimpleClass&)
調用ToString()
,路過ostream&
,並返回ostream&
。
+1:我喜歡你如何實現其在'basic_ostream'對象進行動作的功能,而不僅僅是'cout' –
@Ken:太多人忘記了寬流。 - [ – ildjarn
+1和餅乾 –