western a écrit :
il est aussi possible de surcharger certains opérateurs ... en les obligeant de faire ce qu'on veut ...
|
Non, non, non, pas "ce qu'on veut", on prolonge leur fonctionnement habituel sur des nouveaux objets, par exemple, prolonger + sur des vecteurs (addition membre à membre), c'est bon, mais on fait pas n'improte quoi, ne serait-ce qu'à cause des priorités et associativités fixes mais surtout pour la qualité (et donc, entre autre la lisibilité du code)
ex :
b^c=a
si je te dis que j'ai défini ^ comme affectation pour mon type et = comme une loi de groupe, à la relecture, c'est pas hyper évident et la qualité baisse inévitablement.
Préservez un maximum des propriétés de vos opérateurs. Et utilisez des fonctions qui sont largement plus lisibles et moins casse-gueules.