J'essaie de remplacer operator+
y operator=
pour mes cours. Voici mon code :
#include <iostream>
#include <vector>
using namespace std;
class Integer {
public:
int i;
Integer operator+ (Integer&);
Integer& operator= (Integer&);
};
Integer Integer::operator+(Integer& rhs) {
Integer res;
res.i = this->i + rhs.i;
return res;
}
Integer& Integer::operator=(Integer& rhs) {
this->i = rhs.i;
return *this;
}
int main()
{
Integer i1, i2, i3;
i1.i = 1, i2.i = 2;
i3 = i1 + i2;
cout << i3.i;
}
Dans visual studio 2017, le compilateur s'est plaint que :
"E0349 no operator "=" matches these operands"
Il semble qu'un Integer
ne correspond pas à l'objet Integer&
dans le operator=
fonction. Mais cela fonctionne pour operator+
fonction. C'est très déroutant.
Merci beaucoup.