我有一个与const相关的问题。假设我有:
class A{
friend std::ostream& operator<<(std::ostream& os,const A& myObj);
private:
std::map<int,int> someMap;
int someInteger;
};
std::ostream& operator<<(std::ostream& os,const A& myObj){
os<<myObj.someInteger<<std::endl;
os<<myObj.someMap[0]<<std::endl;
}
这种代码由于与地图的const冲突,在编译时会生成错误(如果我注释掉打印地图值的那行,一切都好),如果我在函数原型中去掉“const”,所有东西都好。我真的不知道问题出在哪里..
请帮忙解决一下吗?
myObj.someMap[0]
。 - chrisos<<myObj<<someMap[0]
应该改为os<<myObj.someMap[0]
,以充实 Chris 所说的内容。 - WhozCraig