Surcharge des opérateurs (C++)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Présentation de la surcharge des fonctions opérateurs - Index


C++ permet de redéfinir l'action de la plupart des opérateurs afin qu'ils exécutent des fonctions spécifiées lorsqu'ils sont utilisés avec les objets d'une classe particulière. Comme avec les fonctions surchargées de C++ en général, le compilateur fait la distinction entre les différentes fonctions en considérant le contexte de l'appel : le nombre et le type des arguments ou des opérandes.

Tous les opérateurs peuvent être surchargés, à l'exception de :

.   .*   ::   ?:

Les symboles du préprocesseur suivants ne peuvent être surchargés.

 #   ##

Les opérateurs =, [ ], ( ), et -> ne peuvent être surchargés qu'en tant que fonctions membres non statiques. Ils ne peuvent pas être surchargés pour les types enum. Si vous tentez de surcharger la version globale de ces opérateurs, une erreur se produit à la compilation.

Le mot clé operator suivi du symbole d'opérateur est appelé nom de fonction opérateur. Il est utilisé comme un nom de fonction normal lorsque vous définissez la nouvelle action (surchargée) de l'opérateur.

Un opérateur de fonction appelé avec des arguments se comporte comme un opérateur appliqué aux opérandes d'une expression. La fonction opérateur ne modifie pas le nombre des arguments ni les règles de priorité et d'associativité qui s'appliquent aux opérateurs normaux.

Voir aussi