No importa si quieres aprender C++ o si llevas mucho tiempo tra­ba­ja­n­do con este lenguaje de pro­gra­ma­ción: los operators C++ son la base de una pro­gra­ma­ción eficiente con C++. Algunos ope­ra­do­res se co­rre­s­po­n­den a su si­g­ni­fi­ca­do intuitivo, mientras que otros pueden no ser obvios a primera vista.

¿Qué son los ope­ra­do­res C++?

Bá­si­ca­me­n­te, un operador es si­m­ple­me­n­te un signo para una operación. Puede referirse a uno, pero sobre todo a varios operandos. Como resultado, se obtiene un nuevo valor en la mayoría de los casos. Un ejemplo popular son los ope­ra­do­res ma­te­má­ti­cos que conoces del colegio, por ejemplo “+” para la suma y “-” para la resta de dos números.

Los ope­ra­do­res de C++ no solo se di­s­ti­n­guen según su propósito funcional. La aridad de los ope­ra­do­res (número básico de ar­gu­me­n­tos ne­ce­sa­rios para que funcione el operador) también es un criterio im­po­r­ta­n­te:

Aridad Número de operandos Ejemplo
Ope­ra­do­res unarios Un operando Negación lógica: !var_name
Ope­ra­do­res binarios Dos operandos Suma: value1 + value2
Ope­ra­do­res ternarios Tres operandos Condición If-else: condition? condition_true : condition_false

Pre­ce­de­n­cia de los ope­ra­do­res

Al igual que con los ope­ra­do­res ma­te­má­ti­cos ari­t­mé­ti­cos en la escuela o los ope­ra­do­res de Python también existe la llamada pre­ce­de­n­cia de ope­ra­do­res o “operator pre­ce­de­n­ce” con los ope­ra­do­res de C++. Es­pe­ci­fi­ca el orden de eva­lua­ción de los ope­ra­do­res. Para los ope­ra­do­res ari­t­mé­ti­cos, se aplican las conocidas reglas de punto antes de guion. Sin embargo, también hay que observar ciertas reglas para otros ope­ra­do­res de C++.

if (var1 && var2 || var3) {
    hacer_algo();
}
cpp

En el ejemplo anterior, se evalúa primero la expresión lógica detrás del operador “if”. Además, el operador && (“y” lógico) tiene prioridad sobre el operador “||” (“o” lógico). Así, si la eva­lua­ción de “var1 && var2” o la eva­lua­ción de “var3” devuelve “true”, se ejecuta la llamada a la función “hacer_algo()”.

Si quieres ir sobre seguro, también puedes utilizar corchetes.

So­bre­ca­r­ga de ope­ra­do­res C++

Puedes so­bre­ca­r­gar la mayoría de los ope­ra­do­res de C++. Esto significa que es posible asignar un nuevo si­g­ni­fi­ca­do a un operador existente en un contexto. Para so­bre­ca­r­gar un operador en C++, se necesita la palabra clave “operator” seguida del operador C++ que se quiere so­bre­ca­r­gar. Por lo demás, la so­bre­ca­r­ga de ope­ra­do­res en C++ se comporta como la so­bre­ca­r­ga de funciones.

Consejo

El alo­ja­mie­n­to web tráfico ilimitado de IONOS es ideal para hacer una copia de seguridad de tus proyectos de C++ en línea. El amplio al­ma­ce­na­mie­n­to en la web te ofrece, entre otras cosas, una cómoda in­s­ta­la­ción con un solo clic.

Los ope­ra­do­res de C++ de un vistazo

Ope­ra­do­res ari­t­mé­ti­cos

Algunos de los ope­ra­do­res ari­t­mé­ti­cos de C++ ya los conocemos desde la escuela. Operan sobre números y devuelven un nuevo número. Salvo dos ex­ce­p­cio­nes (el más y el menos unarios, que puedes co­n­si­de­rar como signos), los ope­ra­do­res ari­t­mé­ti­cos son todos ope­ra­do­res binarios.

Operador C++ Si­g­ni­fi­ca­do Ejemplo
+ Suma / unario más 6 + 4
- Resta / menos unario 10 – 6
* Mu­l­ti­pli­ca­ción 10* 3
/ División de enteros 20 / 10
% Módulo (división con resto) 21 % 2

Ope­ra­do­res de asi­g­na­ción

Los valores se almacenan en variables en C++ como en la mayoría de los lenguajes de pro­gra­ma­ción. Para asignar valores concretos a dichas variables, se necesitan ope­ra­do­res es­pe­cia­les.

Ope­ra­do­res de asi­g­na­ción simples

Operador C++ Si­g­ni­fi­ca­do Ejemplo
= Asi­g­na­ción simple x = 3
++ In­cre­me­n­to x++
-- Di­s­mi­nu­ción x--

Ope­ra­do­res de asi­g­na­ción co­m­bi­na­dos

Además de los ope­ra­do­res de asi­g­na­ción simples, C++ también admite ope­ra­do­res co­m­bi­na­dos. Se trata de ope­ra­cio­nes ari­t­mé­ti­cas o a nivel de bits que se combinan si­mu­l­tá­nea­me­n­te con una asi­g­na­ción de valor:

int  x = 4;
x += 2;
cpp

En el ejemplo de código anterior, a la variable “x” se le asigna el valor numérico 4 con una simple asi­g­na­ción. A co­n­ti­nua­ción, se utiliza el operador combinado de asi­g­na­ción “+=” para realizar una suma ari­t­mé­ti­ca y almacenar el valor re­su­l­ta­n­te di­re­c­ta­me­n­te en x. La asi­g­na­ción se es­cri­bi­ría así: “x = x + 2”.

Operador C++ Si­g­ni­fi­ca­do Ejemplo
+= Suma y asi­g­na­ción x += 2
-= Resta y asi­g­na­ción x -= 2
*= Mu­l­ti­pli­ca­ción y asi­g­na­ción x* = 2
/= División y asi­g­na­ción x /= 2
%= Módulo y asi­g­na­ción x %= 2
&= Asi­g­na­ción e “y” a nivel de bit b &= 1
<<= De­s­pla­za­mie­n­to bit a bit a la izquierda y asi­g­na­ción b <<= 1
>>= De­s­pla­za­mie­n­to bit a bit a la derecha y asi­g­na­ción b >>= 1
^= Xor (exclusión) a nivel de bit y asi­g­na­ción b ^= 1
` =` Or (di­s­yu­n­ción) a nivel de bits y asi­g­na­ción

Ope­ra­do­res lógicos de C++

Puedes utilizar los ope­ra­do­res lógicos de C++ para hacer co­m­pa­ra­cio­nes pro­po­si­cio­na­les de dos ex­pre­sio­nes. Los ope­ra­do­res lógicos son binarios, excepto el operador lógico de negación “!”, que siempre se refiere a una sola afi­r­ma­ción y niega su valor de verdad.

Operador C++ Si­g­ni­fi­ca­do Ejemplo
&& “Y” lógico true && true
` `
! “No” lógico !true

Ope­ra­do­res de co­m­pa­ra­ción

Los ope­ra­do­res de co­m­pa­ra­ción son operators C++ que examinan la relación de dos elementos. En co­n­se­cue­n­cia, son binarios. Excepto la co­m­pa­ra­ción a tres bandas, que devuelve un número, el valor de retorno de todos los ope­ra­do­res de co­m­pa­ra­ción de C++ es un valor de verdad.

Operador C++ Si­g­ni­fi­ca­do Ejemplo
== Igualdad a == b
!= Des­igua­l­dad a != b
<= Más pequeño o igual a <= b
>= Mayor o igual a >= b
< Más pequeño a < b
> Más grande a > b
<=> Co­m­pa­ra­ción a tres bandas a <=> b

Ma­ni­pu­la­ción de bits

Para poder acceder a los bits in­di­vi­dua­les de forma eficiente y mejorar la velocidad de los programas, existen los ope­ra­do­res bit a bit de C++. Son es­pe­cia­l­me­n­te im­po­r­ta­n­tes para la pro­gra­ma­ción orientada al re­n­di­mie­n­to.

Operador C++ Si­g­ni­fi­ca­do Ejemplo
`&v “Y” a nivel de bit a y b
` ` “O” a nivel de bit
^ “Xo” a nivel de bit a ^ b
~ Negación a nivel de bits ~a
&lt;&lt; Cambio a la izquierda a &lt;&lt; b
&gt;&gt; Cambio a la derecha a &gt;&gt; b

Gestión de la memoria

C++ tiene aspectos cercanos al lenguaje máquina y te ofrece una serie de ope­ra­do­res que ayudan con la gestión de la memoria.

Operador C++ Si­g­ni­fi­ca­do Ejemplo
`&v De­te­r­mi­na­ción de la dirección &x
sizeof() Determina la necesidad de memoria de una expresión sizeof(x)
new Crea un nuevo objeto y devuelve el pointer object* pointer = new object()
delete Destruye un objeto delete object

Acceso a datos para objetos y pointers

Si quieres acceder a miembros in­di­vi­dua­les de objetos o a las áreas de memoria de los pointers, los si­guie­n­tes ope­ra­do­res de C++ te ayudarán.

Operador C++ Si­g­ni­fi­ca­do Ejemplo
* La de­s­re­fe­re­n­cia­ción de pointers pro­po­r­cio­na un área de memoria *pointer = 3;
. Acceso a miembros de un objeto object.member = 2;
-&gt; Acceso a miembros de un objeto con un pointer objectpointer->member = 2;
Ir al menú principal