重载ostream &operator<<(ostream &out, const Calculate &c) ;中, 第一个参数应该为const么?
- C/C++ code
const ostream &operator<<(const ostream &out, const Calculate &c){ out <<c.first <<" " <<c.second ; return out ;}....int main(){ Calculate c ; cout <<c <<endl ; // vs08这里会报错, 说"无法从“const std::ostream”转换为“std::ostream &”" return 0 ;}
问个路大神, 何故?
[解决办法]
ostream::operator<<各重载函数均未用const修饰,因为输出时可能因为某些问题需要置badbit等。
const修饰的类变量不能调用未用const修饰的非静态成员函数