我打算每当调用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