Surcharge d’opérateurs Surcharge:d’opérateurs

Nous venons de voir que l’indexeur avec l’opérateur [ ] était un moyen pratique à proposer aux utilisateurs de vos classes pour accéder aux entrées de vos collections.

Il est possible de surcharger d’autres opérateurs si toutefois cela peut prendre un sens pour vos objets.

Prenons le cas de l’opérateur +. Utilisé entre deux entiers, il permet d’effectuer leur addition. Pour reprendre la même idée, l’opérateur + a été "surchargé" dans la classe System.String pour réaliser la concaténation de deux chaînes.

Autre exemple : l’opérateur ==, par défaut, si les types à comparer font partie de la famille Valeur, ce seront les valeurs qui seront comparées sinon ce seront les références (comparaison des pointeurs au final). Dans le cas de System.String, qui fait pourtant partie de la famille Référence, ce sont les contenus des chaînes qui sont comparés car l’opérateur == a été surchargé à cet effet...

Surcharger les opérateurs fait toujours débat entre les développeurs. En effet, il faut "plonger" dans la documentation de la classe utilisée pour savoir comment se comportent les opérateurs. Le langage Java a d’ailleurs complètement rejeté cette fonctionnalité...

Surcharger...

couv_RI4CAPOO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Les indexeurs
Suivant
Fonctions locales