Я пытаюсь перегрузить оператор + в C++, но получаю следующее сообщение об ошибке:Перегрузки "+" - оператор
operators.cpp: In function ‘int main()’:
operators.cpp: 23:17: error: cannot convert ‘Operators’ to ‘int’ in initialization
Это мой код:
#include <iostream>
using namespace std;
class Operators{
private:
int num1;
public:
Operators(int num1){
this->num1 = num1;
}
Operators operator+(Operators o){
return Operators(num1 + o.num1);
}
};
int main(){
Operators o1(5);
Operators o2(10);
Operators res = o1 + o2; // EDITED
cout << res;
}
Не могли бы вы, пожалуйста, помогите меня?
Я знаю, в этом случае не имеет смысла перегружать его, поскольку я мог бы просто сказать 5+10
, но я просто экспериментирую.
UPDATE Спасибо, я редактировал int
.
Но теперь я получаю следующее сообщение об ошибке:
operators.cpp: In function ‘int main()’:
operators.cpp: 25:10: error: match for ‘operator<<’ in ‘std::cout << res’
[...]
Ваше изменение полностью изменило вопрос. Вы не должны этого делать. Если у вас другой вопрос, задайте другой вопрос. – juanchopanza