D’une manière générale, les opérateurs sont destinés à réaliser des opérations arithmétiques ou logiques de type
entier, réel, booléen...
Par exemple si nous avons 5+6, l’operateur « + » additionne les deux entiers qui sont 5 et 6.
Eh bien, en langage C++, il est aussi possible de redéfinir les opérateurs pour les classes afin d’assurer une meilleure lisibilité du code et une meilleure intégration des classes.
Voyons une notation bien connue :
9+1 équivaut à add(9,1)
6-3 équivaut à sub(6,3)
7*2 équivaut à mul(7,2)
3+5-1 équivaut à sub(add(3,5),2)
2+3*4 équivaut à add(2,mul(3,4))
Comme nous voyons très bien, les notations qui se trouvent à gauche sont beaucoup plus lisibles que les notations qui se trouvent à droite.
Eh bien, la surcharge des opérateurs nous permet d’éviter la notation se trouvant à droite. Ainsi on se trouve avec un code plus compréhensible, car utilisant la notation se trouvant à gauche.
Voyons un exemple. Nous allons créer une classe resultat dans laquelle nous serons appelés à réaliser quelques
opérations :
Nous voyons que notre code retournera :
A*B+B*C+C*A
Avouons que cela peut nous prendre du temps pour voir exactement la valeur retournée.
Pour éviter cela, nous allons faire la même chose avec la surcharge des opérateurs.
Il faut noter qu’avec la surcharge des opérateurs, les opérateurs sont précédés du terme operator.
Exemple :
operator +
operator-
operator+(3,4) équivaut à 3+4.
Maintenant voyons comment sera notre code avec la surchage d’operateur :
NB :