我打算每當調用m_logger<<"hello"<<"world"
時調用一個函數。 m_logger是類型的流。如何重載<<運算符?
所以我決定超載< <具有以下簽名
friend ofstream& operator<<(ofstream &stream,char *str);
然而,VC編譯器提供了以下錯誤:
error C2666: 'operator <<' : 6 overloads have similar conversions
是否有任何其它的方式來實現這一目標,我的目標是爲了轉移所有將流操作對象轉換爲不同的函數?
創建我自己的calss對象爲我工作,但是我怎樣才能使它像普通的ofstream對象那樣將所有系統定義的類型轉換爲字符串或char *。我知道一種方法是爲每種類型的操作員超載,但是有更清潔的方法
@Kazoom:我編輯了我的答案,以顯示將任何內容傳遞給內部'ofstream'(它使用函數模板)的通用方法。 – Zifre 2009-07-16 13:25:45