Je vais tenter une autre approche. Quand on défini la fonction :
A operator== (B const &b, C const &C);
On défini une fonction comme les autres, qui a comme nom operator==. On peut l'appeler ainsi :
1 2 3
| B b;
C c;
A a = operator==(b, c); |
Pour l'instant, rien ne change par rapport à si j'avais appelé ma fonction f au lieu de operator==. Par contre, lui avoir donné ce nom me permet aussi d'écrire :
1 2 3
| B c;
C c;
A a = b == c; |
Les deux codes sont équivalents. Maintenant, il y a un certain nombre de fonctions standard qui aimeraient bien faire == sur des types définis par l'utilisateur, mais par défaut, il ne sais pas comment faire pour calculer a == b avec a et b d'un type utilisateur. Il faut donc lui indiquer. Comme en général le résultat d'une telle comparaison est un booléen, il faut donc pour ça définir la fonction :
1 2
|
bool operator==(MonType a, MonType b); |
Partager