Condividi tramite


Operatori C++, precedenza e associazione

Il linguaggio C++ include tutti gli operatori C e ne aggiunge molti nuovi. Gli operatori specificano una valutazione da eseguire su uno o più operandi.

La precedenza degli operatori specifica l'ordine delle operazioni nelle espressioni che contengono più di un operatore. L'associatività degli operatori specifica se, in un'espressione che contiene più operatori con la stessa precedenza, un operando è raggruppato con quello alla sua sinistra o con quello alla sua destra. La tabella seguente illustra la precedenza e l'associatività degli operatori C++ (dalla precedenza più alta a quella più bassa). Gli operatori con lo stesso numero di precedenza hanno precedenza uguale, a meno che non venga imposta in modo esplicito con parentesi un'altra relazione.

Precedenza e associatività degli operatori C++

Descrizione dell'operatore

Group 1 precedence, no associativity

Risoluzione ambito

Group 2 precedence, left to right associativity

Selezione del membro (oggetto o puntatore)

Indice di matrice

Chiamata di funzione

Incremento suffisso

Decremento suffisso

Nome del tipo

Conversione di tipi costanti

Conversioni di tipi dinamici

Conversione di tipi reinterpretati

Conversioni di tipi statici

Group 3 precedence, right to left associativity

Dimensione dell'oggetto o del tipo

Incremento prefisso

Decremento prefisso

Complemento di uno

NOT logico

Negazione unaria

Più unario

Address-of

Riferimento indiretto

Creare oggetto

Eliminare oggetto

Cast

Group 4 precedence, left to right associativity

Puntatore a membro (oggetti o puntatori)

Group 5 precedence, left to right associativity

Moltiplicazione

Divisione

Modulo

Group 6 precedence, left to right associativity

Addizione

Sottrazione

Group 7 precedence, left to right associativity

Spostamento a sinistra

Spostamento a destra

Group 8 precedence, left to right associativity

Minore di

Maggiore di

Minore o uguale a

Maggiore o uguale a

Group 9 precedence, left to right associativity

Uguaglianza

Disuguaglianza

Group 10 precedence left to right associativity

AND bit per bit

Group 11 precedence, left to right associativity

OR esclusivo bit per bit

Group 12 precedence, left to right associativity

OR inclusivo bit per bit

Group 13 precedence, left to right associativity

AND logico

Group 14 precedence, left to right associativity

OR logico

Group 15 precedence, right to left associativity

Condizionale

Group 16 precedence, right to left associativity

Assegnazione

Assegnazione di moltiplicazione

Assegnazione di divisione

Assegnazione modulo

Assegnazione di addizione

Assegnazione di sottrazione

Assegnazione di spostamento a sinistra

Assegnazione di spostamento a destra

Assegnazione AND bit per bit

Assegnazione OR inclusivo bit per bit

Assegnazione OR esclusivo bit per bit

Group 17 precedence, right to left associativity

espressione throw

Group 18 precedence, left to right associativity

Virgola

Vedere anche

Riferimenti

Operatori C++

Overload degli operatori