Compartir a través de


Expresiones postfijas

Las expresiones de postfijo constan de expresiones primarias o expresiones en las que los operadores de postfijo siguen una expresión primaria. Los operadores de postfijo se enumeran en la tabla siguiente.

Operadores de postfijo

Nombre de operador

Notación de operador

Operador de subíndice

[ ]

Operador de llamada de función

( )

Operador de conversión explícita de tipos

type-name( )

Operador de acceso a miembros

. o –>

Operador de incremento de postfijo

++

Operador de decremento de postfijo

––

La sintaxis siguiente describe expresiones de postfijo posibles:

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 )

La expresión de postfijo (postfix-expression) que figura arriba puede ser una expresión primaria u otra expresión de postfijo. Vea expresiones primarias. Las expresiones de postfijo se agrupan de izquierda a derecha, por lo que las expresiones se pueden encadenar unas a otras del modo siguiente:

func(1)->GetValue()++

En la expresión anterior, func es una expresión primaria, func(1) es una expresión de postfijo de función, func(1)->GetData es una expresión de postfijo que especifica un miembro de la clase, func (1)->GetData() es otra expresión de postfijo de función y la expresión completa es una expresión de postfijo que incrementa el valor devuelto de GetData. El significado de la expresión completa es que la función que llama pasa 1 como argumento y obtiene un puntero a una clase como valor devuelto. La llamada a GetValue() en esa clase incrementa después el valor devuelto.

Las expresiones enumeradas anteriormente son expresiones de asignación, lo que significa que el resultado de estas expresiones debe ser un valor R.

La forma de expresión de postfijo

simple-type-name ( expression-list )

indica la invocación del constructor. Si el nombre de tipo simple es un tipo fundamental, la lista de expresiones debe ser una expresión única y esta expresión indica una conversión del valor de la expresión al tipo fundamental. Este tipo de expresión de conversión imita un constructor. Dado que esta forma permite la construcción de tipos y clases fundamentales utilizando la misma sintaxis, es especialmente útil cuando se definen clases de plantilla.

cast-keyword puede ser dynamic_cast, static_cast o reinterpret_cast. Se puede encontrar más información en dynamic_cast, static_cast y reinterpet_cast.

El operador typeid se considera una expresión de postfijo. Vea operador typeid.

Vea también

Referencia

Tipos de expresiones