Operador Prioridad y Asociatividad

El lenguaje C++ incluye todos los operadores de C y agrega varios operadores nuevos.Los operadores especifican una evaluación que se realizará en una de las siguientes:

  • un operando (operador unario)

  • dos operandos (operador binario)

  • tres operandos (operador ternario)

Los operadores siguen una prioridad estricta, que define el orden de evaluación de las expresiones que contienen estos operadores.Asociar de los operadores con la expresión de la izquierda o la expresión de la derecha; esto se denomina “asociatividad.” La tabla siguiente muestra la prioridad y la asociatividad de los operadores de C++ (de la precedencia de mayor a menor).Los operadores en el mismo segmento de la tabla tienen prioridad igual y se evalúan en el orden especificado en una expresión a menos que explícitamente son forzados por paréntesis.

Operador Prioridad y Asociatividad de C++

Operador

nombre o significado

Asociatividad

::

Resolución de ámbito

None

 

 

 

.

Selección de miembro (objeto)

De izquierda a derecha

–>

Selección de miembro (puntero)

De izquierda a derecha

[ ]

Subíndices de matriz

De izquierda a derecha

( )

Inicialización del miembro de la llamada de función

De izquierda a derecha

++

Postfijo de incremento

De izquierda a derecha

––

Postfijo de decremento

De izquierda a derecha

typeid( )

nombre de tipo

De izquierda a derecha

const_cast

conversión de tipo (conversión)

De izquierda a derecha

dynamic_cast

conversión de tipo (conversión)

De izquierda a derecha

reinterpret_cast

conversión de tipo (conversión)

De izquierda a derecha

static_cast

conversión de tipo (conversión)

De izquierda a derecha

 

 

 

sizeof

Tamaño del objeto o de tipo

De derecha a izquierda

++

Prefijo de incremento

De derecha a izquierda

––

Prefijo de decremento

De derecha a izquierda

~

Complemento de uno

De derecha a izquierda

!

negación lógica

De derecha a izquierda

Operador unario menos

De derecha a izquierda

+

Operador unario más

De derecha a izquierda

&

dirección de

De derecha a izquierda

*

Direccionamiento indirecto

De derecha a izquierda

new

cree el objeto

De derecha a izquierda

delete

destruya el objeto

De derecha a izquierda

( )

Conversión de tipos explícita

De derecha a izquierda

 

 

 

.*

puntero a miembro (objetos)

De izquierda a derecha

–>*

puntero a miembro (punteros)

De izquierda a derecha

 

 

 

*

Multiplicación

De izquierda a derecha

/

División

De izquierda a derecha

%

Módulo

De izquierda a derecha

 

 

 

+

Adición

De izquierda a derecha

Resta

De izquierda a derecha

 

 

 

<<

Desplazamiento a la izquierda

De izquierda a derecha

>>

Desplazamiento a la derecha

De izquierda a derecha

 

 

 

<

Menor que

De izquierda a derecha

>

Mayor que

De izquierda a derecha

<=

Menor o igual que

De izquierda a derecha

>=

Mayor o igual que

De izquierda a derecha

 

 

 

==

Igualdad

De izquierda a derecha

!=

Desigualdad

De izquierda a derecha

 

 

 

&

AND bit a bit

De izquierda a derecha

 

 

 

^

OR exclusivo bit a bit

De izquierda a derecha

 

 

 

|

OR inclusivo bit a bit

De izquierda a derecha

 

 

 

&&

AND lógico

De izquierda a derecha

 

 

 

||

OR lógico

De izquierda a derecha

 

 

 

expr1 ? expr2 : expr3

Condicional

De derecha a izquierda

 

 

 

=

Asignación

De derecha a izquierda

*=

Asignación de multiplicación

De derecha a izquierda

/=

Asignación de división

De derecha a izquierda

%=

Asignación de módulo

De derecha a izquierda

+=

Asignación de suma

De derecha a izquierda

–=

Asignación de resta

De derecha a izquierda

<<=

asignación de Izquierdo-MAYÚS

De derecha a izquierda

>>=

asignación de Derecho-MAYÚS

De derecha a izquierda

&=

Asignación AND bit a bit

De derecha a izquierda

|=

Inclusivo bit a bit OR asignación

De derecha a izquierda

^=

OR EXCLUSIVO bit a bit asignación

De derecha a izquierda

 

 

 

throwexpr

expresión throw

De derecha a izquierda

 

 

 

,

Coma

De izquierda a derecha

Vea también

Referencia

Operadores de C++

Sobrecarga de operadores