Sommaire

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. 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. Dans le cas de System.String, qui fait partie de la famille référence, ce sont pourtant 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 l’opérateur ==

Comme nous l’avons déjà ...