Next: Surcharge et bibliothèque Up: Le langage C++ Previous: Mise en uvre

La surcharge des opérateurs

La surcharge des fonctions est un autre moyen d'obtenir des fonctions polymorphes. Dans un souci d'homogénéité avec les types de bases, il peut être utile de surcharger des opérateurs.


class complexe {
  double re,im ;
public:
complexe(const double r=0.0, const double i=0.0) ;
friend complexe operator + (const complexe a, const complexe b) ;
};
complexe::complexe(const double r, const double i)
: re(r),im(i) {}
complexe operator + (const complexe a,const complexe b) {
  return complexe(a.r+b.r,a.i+b.i) ;
}
...
complexe a(1.0,2.0) , b(2.0) ;
complexe z = operator + (a,b) ;
complexe z = a+b ; // on ecrira plutot cette ligne
à détailler : le nouveau mot-clé operator, les fonctions amies.
Quelques règles sont à respecter pour l'écritures d'opérateurs :

@
vendredi, 7 novembre 1997, 14:51:48 MET