Les opérateurs dincrémentation ++ et de décrémentation -- peuvent être redéfinis comme les autres. Ils posent toutefois un problème particulier car on ne peut pas distinguer leur application en préfixe et en suffixe. Par exemple, si lon a écrit :
fraction operator++(fraction& f){ f.num += f.den; return f;} // ...... fraction f = 5, g = f++/7; la valeur de g sera 6/7 et non 5/7 comme attendu. En effet, la façon dont on a écrit lopérateur, dont largument est dabord augmenté puis retourné, signifie quil agit comme un pré-incrément. Le langage permet son utilisation sous les deux formes ++f ou f++, mais pas la définition de deux opérateurs dincrémentation, un de pré-incrément, lautre de post-incrément.
| Exercice 7.3 | Comment écrire |
| Voir solution |
Pour cette raison, il est préférable de ne pas redéfinir ces opérateurs, sauf en leur donnant un sens tout à fait différent de lincrémentation, afin déviter toute erreur.
| Suivant |