next up previous contents
Next: Les ``patrons'' Up: Surcharges d'opérateurs Previous: Opérateur -> d'accès

Opérateur d'incrémentation ++

Comme ++ peut être en C++ soit postfixe soit préfixe, il y a deux définitions possible pour les surcharges : la forme préfixe (++a) correspond à operator++() alors que la forme postfixe (a++) correspond à operator++(int)

On aurait pu pour définir liste_iter utiliser une surcharge de ++ :

class liste_iter{
    liste *lc;   // pointeur sur la liste courante
    lien *courant; //element courant de la liste
public:
    liste_iter(liste& li){  // initialise l'itérateur
       lc=&li;courant=lc->debut;
    }
    lien* operator++(){     // forme préfixe
                            // retourne élément suivant
                            // ou 0 
       lien* res=courant;
       courant=courant? courant->suivant):0;
       return res;
    }
    lien* operator++(int ){ // forme postfixe
                            // retourne élément suivant
                            // ou 0 
       return courant?(couran=courant->suivant):0;
    }
}




Mon Oct 20 14:02:48 MET 1997