[Surcharge d'opérateurs] Libre ou non ?
Bonjour à tous.
Je travaille actuellement sur une classe de Vecteurs en 3 dimensions pour du calcul numérique.
Code:
1 2 3 4
| struct Vecteur{
double x;
//...
}; |
J'ai deux questions à ce sujet. Où placer mes opérateurs ? Dans la classe ou en fonctions libres ? Comme mes attributs sont publics, je n'ai pas de problème d'encapsulation ni de surcoût d'appel de fonction, mais dans toutes les implémentations "canoniques", les opérateurs +=, -=,... sont toujours placés dans la classe. Pour quelle(s) raison(s) ?
Ma deuxième question concerne les opérateurs +,-,... Je les ai défini en fonction libre utilisant la fonction +=,-=,... associée. Cela crée-t'il un surcoût par rapport à une version qui ferait le calcul direct ? Et à nouveau la même question, y a-t'il un intérêt à placer ces opérateurs dans la structure même ?
Merci d'avance