struct myType{
public:
myType operator=(const myType &value){
return value;
};
};
MyType имеет перегрузку оператора для = но, когда она вызывается в классе JSON в it = js.allInfo.begin();
компиляторе бросает: «Нет жизнеспособные перегрузки для„=“»Нет жизнеспособные перегрузок для «=», когда существует оператор
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;
};
Что я должен изменить в перегрузке = исправить эту проблему
Обычно типа возвращаемого для оператора присваивания является ссылкой этот тип, в этом случае это будет 'myType &'. Вы возвращаете 'myType' из' operator = ', а не' myType & '. Не знаю, поможет ли это вам ... –
Я уже делаю это const myType & value, это то же самое, что и const myType & value, если это то, что вы имеете в виду –
Нет, 'const' правильный для аргумента, но а не для типа возврата. –