Espressioni di suffisso
Le espressioni di suffisso consistono nelle espressioni primarie o delle espressioni in cui gli operatori di suffisso seguono un'espressione primaria.Gli operatori di suffisso sono elencati nella tabella seguente.
operatori di suffisso
Nome dell'operatore |
Notazione dell'operatore |
---|---|
[ ] |
|
( ) |
|
nome del tipo( ) |
|
. o –> |
|
++ |
|
–– |
La sintassi seguente vengono descritte le espressioni possibili di suffisso:
primary-expression
postfix-expression [ expression ]
postfix-expression ( expression-list<SUB>opt</SUB> )
simple-type-name ( expression-list<SUB>opt</SUB> )
postfix-expression . name
postfix-expression –> name
postfix-expression ++
postfix-expression ––
cast-keyword < typename > (expression )
typeid ( typename )
suffisso-espressione possono essere un'espressione primaria o un altro espressione di suffisso.vedere espressioni principali.Le espressioni di suffisso vengono raggruppati da sinistra a destra, consentendo pertanto alle espressioni da concatenare come segue:
func(1)->GetValue()++
Nell'espressione sopra, funzionale è un'espressione primaria, func (1) è un'espressione nel suffisso di funzione, (1) - >GetData funzionale è un'espressione di suffisso che specifica un membro della classe, func (1) - > GetData() è un'altra espressione del suffisso di funzione e l'intera espressione è un'espressione di suffisso che incrementa il valore restituito GetData.Il significato dell'espressione nel suo complesso è “chiamata 1 di passaggio funzionale come argomento e ottiene un puntatore a una classe come valore restituito.Chiamare GetValue() in quella classe, quindi incrementare il valore restituito.
Le espressioni elencate in precedenza sono espressioni di assegnazione, pertanto il risultato di queste espressioni devono essere un r-value.
Il form dell'espressione di suffisso
simple-type-name ( expression-list )
indica la chiamata del costruttore.Se il semplice-tipo-nome è un tipo fondamentale, l'elenco di espressioni deve essere una sola espressione e questa espressione indica un cast del valore dell'espressione al tipo sottostante.questo tipo di espressione cast riproduce un costruttore.Poiché questo form consente i tipi fondamentali e le classi da costruire utilizzando la stessa sintassi, questo form è particolarmente utile quando si definisce le classi modello.
eseguire il castparola chiave è uno di dynamic_cast, static_cast o reinterpret_cast.Ulteriori informazioni sono disponibili in dynamic_cast, " tipo2 " e reinterpet_cast.
typeid l'operatore viene considerato un'espressione di suffisso.vedere operatore di typeid.