i ++ Cela renvoie la valeur de la i avant qu'il ne soit incrémenté. Donc, l'idée est que si vous voulez utiliser i dans une fonction, puis incrémenter la valeur après l'avoir utilisée, vous pouvez le faire en une seule étape. À titre d'exemple, voici comment je surcharger cet opérateur pour les entiers.
Integer Integer::operator++()
{
Integer returnValue = *this;
this->increment();
return returnValue;
}
Il incrémente la valeur, puis retourne ce qu'il utilisé être. Il ne renvoie pas non plus de référence, car renvoyer une référence serait différent de ce qui a été passé à l'origine, ce qui casse la cascade.
++ i Cela incrémente la valeur de i et renvoie la nouvelle valeur. Vous pouvez donc utiliser ceci dans une situation où vous voulez incrémenter i et ensuite utiliser la nouvelle valeur dans votre fonction.La valeur renvoyée est donc la valeur incrémentée de i.
Sauf si vous parlez d'une langue spécifique, ++ je renvoie toujours la valeur, pas une référence. – HoLyVieR
@all: Je suis à peu près sûr que c'est bien comme langue-agnostique. Y a-t-il un langage qui pourrait renvoyer «i ++» par référence? Il vaut mieux renvoyer une nouvelle valeur dans l'implémentation de n'importe quelle langue. – Stephen
Basé sur le contexte de la question, je suppose qu'il parle de surcharger l'opérateur ++ en C++. Une clarification de la question serait utile. – 5ound