El lenguaje C++ incluye todos los operadores de C y agrega varios operadores nuevos. Los operadores especifican una evaluación que se realizará en uno o más operandos.
Precedencia y asociatividad
La prioridad de los operadores especifica el orden en que se realizan las operaciones en las expresiones que contienen más de un operador. La asociatividad de los operadores especifica si, en una expresión que contiene varios operadores con la misma prioridad, un operando se agrupa con el de su izquierda o con el de su derecha.
Ortografías alternativas
C++ especifica ortografías alternativas para algunos operadores. En C, las ortografías alternativas se proporcionan como macros en el encabezado de <iso646.h>. En C++, estas alternativas son palabras clave y el uso de <iso646.h> o el equivalente en C++ <ciso646> está en desuso. En Microsoft C++, se requiere la opción del compilador /permissive-
o /Za
para poder habilitar las ortografías alternativas.
Tabla de prioridad y asociatividad de los operadores de C++
La tabla siguiente muestra la prioridad y la asociatividad de los operadores de C++ (de mayor a menor prioridad). Los operadores que tienen el mismo número de prioridad tienen la misma prioridad, a menos que se fuerce otra relación explícitamente mediante paréntesis.
Descripción del operador |
Operador |
Alternativa |
Precedencia de grupo 1, sin asociatividad |
|
|
Resolución de ámbito |
:: |
|
Precedencia de grupo 2, asociatividad de izquierda a derecha |
|
|
Selección de miembros (objeto o puntero) |
. o -> |
|
Subíndice de matriz |
[] |
|
Llamada a función |
() |
|
Incremento de postfijo |
++ |
|
Disminución del postfijo |
-- |
|
Nombre de tipo |
typeid |
|
Conversión de tipos constantes |
const_cast |
|
Conversión de tipos dinámicos |
dynamic_cast |
|
Conversión de tipos reinterpretados |
reinterpret_cast |
|
Conversión de tipos estáticos |
static_cast |
|
Precedencia de grupo 3, asociatividad de derecha a izquierda |
|
|
Tamaño del objeto o tipo |
sizeof |
|
Incremento de prefijo |
++ |
|
Decremento de prefijo |
-- |
|
Complemento a uno |
~ |
compl |
NOT lógico |
! |
not |
Negación unaria |
- |
|
Unario más |
+ |
|
Dirección de |
& |
|
Direccionamiento indirecto |
* |
|
Crear objeto |
new |
|
Destruir objeto |
delete |
|
Cast |
() |
|
Precedencia de grupo 4, asociatividad de izquierda a derecha |
|
|
Puntero a miembro (objetos o punteros) |
.* o ->* |
|
Precedencia de grupo 5, asociatividad de izquierda a derecha |
|
|
Multiplicación |
* |
|
División |
/ |
|
Módulo |
% |
|
Precedencia de grupo 6, asociatividad de izquierda a derecha |
|
|
Suma |
+ |
|
Resta |
- |
|
Precedencia de grupo 7, asociatividad de izquierda a derecha |
|
|
Desplazamiento a la izquierda |
<< |
|
Desplazamiento a la derecha |
>> |
|
Precedencia de grupo 8, asociatividad de izquierda a derecha |
|
|
Menor que |
< |
|
Mayor que |
> |
|
Menor o igual que |
<= |
|
Mayor o igual que |
>= |
|
Precedencia de grupo 9, asociatividad de izquierda a derecha |
|
|
Igualdad |
== |
|
Desigualdad |
!= |
not_eq |
Precedencia de grupo 10 asociatividad de izquierda a derecha |
|
|
AND bit a bit |
& |
bitand |
Precedencia de grupo 11, asociatividad de izquierda a derecha |
|
|
OR exclusivo bit a bit |
^ |
xor |
Precedencia de grupo 12, asociatividad de izquierda a derecha |
|
|
OR inclusivo bit a bit |
| |
bitor |
Precedencia de grupo 13, asociatividad de izquierda a derecha |
|
|
Y lógico |
&& |
and |
Precedencia de grupo 14, asociatividad de izquierda a derecha |
|
|
O lógico |
|| |
or |
Precedencia de grupo 15, asociatividad de derecha a izquierda |
|
|
Condicional |
? : |
|
Cesión |
= |
|
Asignación de multiplicación |
*= |
|
Asignación de división |
/= |
|
Asignación de módulos |
%= |
|
Asignación de suma |
+= |
|
Asignación de resta |
-= |
|
Asignación de desplazamiento a la izquierda |
<<= |
|
Asignación de desplazamiento a la derecha |
>>= |
|
Asignación AND bit a bit |
&= |
and_eq |
Asignación OR inclusiva bit a bit |
|= |
or_eq |
Asignación OR exclusiva bit a bit |
^= |
xor_eq |
throw expression |
throw |
|
Precedencia de grupo 16, asociatividad de izquierda a derecha |
|
|
Comma |
, |
|
Consulte también
Sobrecarga de operadores