¿Qué son los operadores?
Los operadores son símbolos o palabras que permiten realizar operaciones sobre valores o variables.
Los operadores se clasifican principalmente en operadores aritméticos, relacionales y lógicos.
Operadores aritméticos
Los operadores aritméticos permiten realizar operaciones matemáticas.
- Suma (+): Suma dos valores.
- Resta (-): Resta un valor de otro.
- Multiplicación: (*) Multiplica valores.
- División (/): Divide un valor entre otro.
- Módulo (%): Devuelve el residuo de una división.
Ejemplos
- 5 + 3 → 8
- 10 - 2 → 8
- 4 * 2 → 8
- 16 / 2 → 8
- 10 % 3 → 1
Operadores relacionales
Los operadores relacionales permiten comparar valores. El resultado de la comparación siempre será true o false.
- Mayor que (>): Verifica si un valor es mayor que otro.
- Menor que (<): Verifica si un valor es menor que otro.
- Mayor o igual que (>=): Verifica si un valor es mayor o igual que otro.
- Menor o igual que (<=): Verifica si un valor es menor o igual que otro.
- Igual que (==): Verifica si dos valores son iguales.
- Diferente de (!=): Verifica si dos valores son distintos.
Ejemplos
- 5 > 3 → true
- 2 < 1 → false
- 8 >= 8 → true
- 4 <= 2 → false
- 7 == 7 → true
- 5 != 3 → true
Operadores lógicos
Los operadores lógicos permiten combinar o negar expresiones booleanas.
- AND (&&): Devuelve true únicamente si ambas expresiones son verdaderas.
- OR (||): Devuelve true si al menos una expresión es verdadera.
- NOT (!): Invierte el valor lógico de una expresión.
Ejemplos
- true && true → true
- true && false → false
- false || true → true
- false || false → false
- !true → false
- !false → true
Preguntas frecuentes
¿Hay más operadores lógicos en C++ además de los tradicionales?
Sí. Aunque en la lógica tradicional nos enseñan '&&', '||' y '!', C++ cuenta con operadores lógicos a nivel de bits (bitwise logical operators) como '&' (AND), '|' (OR), '^' (XOR) y '~' (NOT). A diferencia de sus contrapartes relacionales, estos operadores obligan al compilador a evaluar cada bit de las variables y, crucialmente, no tienen evaluación de cortocircuito. El compilador generará instrucciones para procesar ambos lados de la expresión sin importar el resultado inicial, lo que se utiliza para máscaras de bits, criptografía y optimización de hardware.
¿Qué es la comparación de tres vías y cómo simplifica el código?
Introducido en C++20, el operador de comparación de tres vías <=> (Spaceship Operator) cambia las reglas de cómo el compilador deduce la jerarquía lógica de los datos. En lugar de devolver un simple 'true' o 'false', este operador le pide al compilador que devuelva una categoría de ordenamiento (como std::strong_ordering o std::partial_ordering).
Gracias a esto, el compilador sabe si un objeto es menor que, igual a, o mayor que otro en una sola operación. Si defines auto operator<=>(const MiClase&) const = default;, el compilador autogenera de forma inteligente la lógica matemática para los seis operadores relacionales tradicionales (<, >, <=, >=, ==, !=), reduciendo el código repetitivo y evitando errores humanos al implementar comparaciones complejas.