La plupart des langages de programmation, comme C++, sont récursifs dans l'ordre où les opérations sont effectuées (je ne fais aucune implication sur la façon dont le code est implémenté par le compilateur ici). Les opérations composées composées de toutes les opérations bien définies sont elles-mêmes bien définies, puisque chaque opération est effectuée selon la méthode du dernier entré, premier sorti. Le post-incrément retourne la valeur de la variable incrémentée avant l'incrémentant, l'opération return
reçoit cette valeur. Aucune définition particulière de ce comportement ne doit être faite.
Bonne explication, merci. – patros
Si 'int' n'est pas un' int', mais un 'MyClassWithOverloadedOperators', alors vous avez tort. –
@Pavel: Je ne suis pas d'accord. Une classe avec un opérateur post-incrément surchargé qui n'implémente pas la sémantique de post-incrémentation correcte est incorrecte. – Void