Autoincremento e autodecremento
Gli operatori ++ e -- meritano un breve
accenno poiche` esistono entrambi sia come operatori unari prefissi che unari
postfissi.
Le prime versioni del linguaggio non consentivano di distinguere tra le due
forme, la stessa definizione veniva utilizzata per le due sintassi. Le nuove
versioni del linguaggi consentono invece di distinguere e usano due diverse
definizioni per i due possibili casi.
Come operatori globali, la forma prefissa prende un solo argomento, l'oggetto
cui e` applicato; la forma postfissa invece possiede un parametro fittizio in
piu` di tipo int . I prototipi delle due forme di entrambi gli operatori
per gli interi sono ad esempio le seguenti:
int operator++(int A); // caso ++Var
int operator++(int A, int); // caso Var++
int operator--(int A); // caso --Var
int operator--(int A, int); // caso Var--
Il parametro fittizio non ha un nome e non e` possibile accedere ad esso.
Ridefiniti come funzioni membro, la versione prefissa non presenta nel suo prototipo
alcun parametro (il parametro e` l'oggetto su cui l'operatore e` chiamato),
la forma postfissa ha un prototipo con il solo argomento fittizio.
|