Nous avons déjà montré qu’il
était possible de surcharger des fonctions. Nous
allons maintenant voir qu’il est également
possible de surcharger des opérateurs. La surcharge
d’opérateurs permet une syntaxe et une utilisation,
plus intuitive de la classe.
Ces surdéfinitions peuvent se faire au niveau global
(non spécifiques à une classe) ou bien comme
fonctions membres de classes, c’est ce que nous allons
voir ici.
.hpp
class maClasse {
…
maClasse operator + (maClasse
&) ;
maClasse operator = (maClasse &) ;
} ;
.cpp
maClasse : : maClass operator
+ (maClasse & c1) {
…
corps de l’opérateur +
}
maClasse operator = (maClasse &c1) {
…
}
L’utilisation de l’opérateur + pourra
se faire ainsi :
void main (void) {
maClasse c1,c2,c3 ;
c3 = c1+ c2 ; le « = » sera interprété
comme c3 = operator + (c1,c2) ; le « + » sera
interprété comme c3.operator=( c2.operator+(
c1 ) );
}
Liste des opérateurs
surchargeables