Bonjour,
Je voudrais surcharger l'opérateur + et faire la somme de deux objets instanciés dynamiquement mais ça ne marche pas.
Ci-dessous : le premier cas fonctionne, le second retourne à la compilation :
" invalid operands of types `Som*' and `Som*' to binary `operator+'"
Pouvez vous m'éclairer?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include <iostream> using namespace std; class Som { int value; public: Som(int tmpInt):value(tmpInt){} int getValue(void) {return value;} int operator + (Som tmpSom) {int res = value + tmpSom.getValue();return res;} }; int main() { Som a(5); Som b(6); cout << "som = " << a+b; return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include <iostream> using namespace std; class Som { int value; public: Som(int tmpInt):value(tmpInt){} int getValue(void) {return value;} int operator + (Som *tmpSom) {int res = value + tmpSom->getValue();return res;} }; int main() { Som *a = new Som(5); Som *b = new Som(6); cout << "som = " << a+b; return 0; }
Partager