Operatori && e ||
Anche gli operatori di AND e OR logico possono
essere ridefiniti, tuttavia c'e` una profonda differenza tra quelli predefiniti
e quelli che l'utente puo` definire. La versione predefinita di entrambi gli
operatori eseguono valutazioni parziali degli argomenti: l'operatore valuta
l'operando di sinistra, ma valuta anche quello di destra solo quando il risultato
dell'operazione e` ancora incerto. In questi esempi l'operando di destra non
viene mai valutato:
int var1 = 1;
int var2 = 0;
int var3 = var2 && var1;
var3 = var1 || var2;
In entrambi i casi il secondo operando non viene valutato poiche` il valore
del primo e` sufficiente a stabilire il risultato dell'espressione.
Le versioni sovraccaricate definite dall'utente non si comportano in questo
modo, entrambi gli argomenti dell'operatore sono sempre valutati (al momento
in cui vengono passati come parametri).
|