Bonjour à tous.

Je travaille actuellement sur une classe de Vecteurs en 3 dimensions pour du calcul numérique.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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