Programmation Orientée objet en C++
Chapitre 1. Vocabulaire
Chapitre 2. Principes de la programmation objet
Chapitre 3. Du C au C++
Chapitre 4. Les classes
4.1. Entête dans le .hpp
4.2. Définition dans le .cpp
4.3. Instanciation et Utilisation
4.4. Utilisation avec des pointeurs
4.5. Fonctions
4.6. Constructeurs/Destructeurs
4.7. Objets utilisés en paramètres, en retour
4.8. Adresse d'un objet : this
4.9. Constructeur par recopie
4.10. Objets contenant d'autres objets
4.11. Surcharge/Surdéfinition d'opérateurs
4.12. Héritage
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

4.11. Surcharge/Surdéfinition d'opérateurs

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

Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante