Kaz*_*oom 0 c++ operator-overloading operators visual-c++ operator-keyword
我打算在调用时调用函数m_logger<<"hello"<<"world".m_logger属于ofstream类型.
所以我决定用以下签名重载<<
friend ofstream& operator<<(ofstream &stream,char *str);
Run Code Online (Sandbox Code Playgroud)
但是vc编译器会出现以下错误:
错误C2666:'operator <<':6次重载具有类似的转换
有没有其他方法可以实现这一点,我的目标是将所有写操作转移到ofstream对象到不同的功能?
创建我自己的calss对象对我有用,但是我怎样才能使它像普通的ofstream对象一样工作,它将所有系统定义的类型转换为字符串或char*.我知道一种方法是为每种类型的操作员重载但是有一种更清洁的方法
"过载"不是"覆盖".您可以为不同类型的参数重载函数或运算符; 你不能用你自己的实现覆盖现有的函数或操作符(除了覆盖虚函数,这显然是非常不同的).唯一的例外是,operator new并且operator delete,可以覆盖内置的.
| 归档时间: |
|
| 查看次数: |
1743 次 |
| 最近记录: |