读书人

重载ostream amp;operatorlt;lt;(ostream amp;ou

发布时间: 2012-05-13 16:39:43 作者: rapoo

重载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修饰的非静态成员函数

读书人网 >C++

热点推荐