Surcharge d'opérateurs et symétrie
Bonsoir,
J'ai deux petites questions :
Si je surcharge l'opérateur * d'une classe Vect2D et que je souhaite garder la symétrie par exemple,
Code:
1 2 3 4
|
Vect2D a,b;
b = a * 10;
b = 10 * a; |
Dois-je obligatoirement surcharger mon opérateur comme ci dessous ?
Code:
1 2 3
|
Vect2D operator * (const Vect2D&, int);
Vect2D operator * (int, const Vect2D&); |
Deuxième question :
Quelle est la différence entre
Code:
1 2 3 4 5
|
Vect2D& operator+(const Vect2D other) const{
Vect2D* vect = new Vect2D(x + other.getX(), y + other.getY());
return *vect;
} |
et
Code:
1 2 3 4 5
|
Vect2D operator+(const Vect2D other) const{
Vect2D vect(x + other.getX(), y + other.getY());
return vect;
} |
Une de ces deux méthodes est préférable ?
Merci