Compartilhar via


Expressões pós-fixadas

As expressões pós-fixadas consistem em expressões primárias ou expressões nas quais operadores pós-fixados seguem uma expressão primária. Os operadores pós-fixados estão listados na tabela a seguir.

Operadores pós-fixados

Nome do operador

Notação do operador

Operador de subscrito

[ ]

Operador de chamada de função

( )

Operador de conversão de tipo explícita

type-name( )

Operador de acesso de membro

. ou –>

Operador de incremento pós-fixado

++

Operador de decremento pós-fixado

––

A sintaxe a seguir descreve expressões pós-fixadas possíveis:

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 )

No código acima, postfix-expression pode ser uma expressão primária ou outra expressão pós-fixada. Consulte o tópico sobre expressões primárias. As expressões pós-fixadas são agrupadas da esquerda para a direita; com isso, elas podem ser encadeadas da seguinte forma:

func(1)->GetValue()++

Na expressão acima, func é uma expressão primária, func(1) é uma expressão pós-fixada de função, func(1)->GetData é uma expressão pós-fixada que especifica um membro da classe, func(1)->GetData() é outra expressão pós-fixada de função, e a expressão inteira é uma expressão pós-fixada que incrementa o valor de retorno de GetData. O significado da expressão, no conjunto, é "função de chamada passando 1 como um argumento e obtendo um ponteiro para uma classe como um valor de retorno". Em seguida, GetValue() é chamada nessa classe, e o valor retornado é incrementado.

As expressões listadas acima são expressões de atribuição, ou seja, o resultado dessas expressões deve ser um r-value.

O formato de expressão pós-fixada

simple-type-name ( expression-list )

indica a invocação do construtor. Caso simple-type-name seja um tipo fundamental, a lista de expressões deve ser formada por uma única expressão, a qual indica uma conversão do valor da expressão no tipo fundamental. Esse tipo de expressão convertida imita um construtor. Como esse formato permite que classes e tipos fundamentais sejam construídos usando a mesma sintaxe, ele é especialmente útil na definição de classes de modelo.

cast-keyword é uma destas opções: dynamic_cast, static_cast ou reinterpret_cast. Mais informações podem ser encontradas em dynamic_cast, static_cast e reinterpet_cast.

O operador typeid é considerado uma expressão pós-fixada. Consulte o tópico sobre o operador typeid.

Consulte também

Referência

Tipos de expressões