Salut !

J'aimerais savoir si vous connaissez un moyen de "tricher" pour arriver a faire des surcharges d'opérateur qui prenne en argument des pointeur d'objet ?

Si on essaye de faire ca comme ca :
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
 
class A
{
	int val;
 
	public :
		A(int arg) : val(arg){}
 
		A *operator + (A *x, A *y) {
			return new A(x->val + y->val);
		}
};
int main()
{
	A *a = new A(4);
	A *b = new A(2);
	A *c;
 
	c = a+b;
 
	return 0;
}
Ca ne compile pas et on reçoi le message d'erreur :
erreur: «A* A::operator+(A*, A*)» must take either zero or one argument
Apparemment il faut qu'au moins un des argument soit un type utilisateur


Connaissez vous une manière de passer outre cette limitation ?

Merci pour votre aide.