Surcharges d'opérateur avec 2 pointeurs en argument
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:
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 :
Citation:
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.