struct myType{
public:
myType operator=(const myType &value){
return value;
};
};
myType有一个运算符重载=但是当它在it = js.allInfo.begin();
的JSON类中被调用时,编译器抛出:“'='没有可行的重载”
class JSON{
private:
vector<myType> allInfo;
public:
friend ostream &operator<<(ostream &os,const JSON &js)
{
vector<myType>::iterator it;
for(it = js.allInfo.begin(); it != js.allInfo.end();it++){
cout << "this is the info "<<(it->getNAME()) << endl;
}
return os;
};
我应该在重载中更改=修复此问题
答案 0 :(得分:6)
您尝试使用非const迭代器迭代const对象(const JSON&amp; js)。
使用const迭代器:
vector<myType>::const_iterator it;
更好的是,使用关键字&#34; auto&#34;自动获得正确的类型:
auto it = js.allInfo.begin()