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; } }