Necesitamos tu apoyo para extender nuestras reseñas con relación a las ciencias informáticas.
Devuelve el resultado de una operación booleana.
Nombre del operador | Sintaxis | Sobrecarga capaz | Ejemplos de prototipos (para class T ) |
|
---|---|---|---|---|
Definición de clase interna | Definición de clase externa | |||
negación | not a
|
sí | bool T::operator!() const; |
bool operator!(const T &a); |
Y | a and b
|
sí | bool T::operator&&(const T2 &b) const; |
bool operator&&(const T &a, const T2 &b); |
inclusive O | a or b
|
sí | bool T::operator||(const T2 &b) const; |
bool operator||(const T &a, const T2 &b); |
Notas
|
Explicación
Las expresiones del operador lógico tienen la forma.
! rhs |
(1) | |
lhs&& rhs |
(2) | |
lhs|| rhs |
(3) |
1) NO lógico2) Y lógico3) OR lógico inclusivo
Si el operando no es bool
, se convierte en bool
usando la conversión contextual para bool: solo está bien formado si la declaración bool t(arg)
está bien formado, para algunos inventados temporales t
.
El resultado es un bool
prvalue.
Para el operador NOT lógico incorporado, el resultado es true
si el operando es false
. De lo contrario, el resultado es false
.
Para el operador AND lógico incorporado, el resultado es true
si ambos operandos son true
. De lo contrario, el resultado es false
. Este operador es cortocircuito: si el primer operando es false
, el segundo operando no se evalúa.
Para el operador OR lógico incorporado, el resultado es true
si el primer o el segundo operando (o ambos) es true
. Este operador está en cortocircuito: si el primer operando es true
, el segundo operando no se evalúa.
Tenga en cuenta que los operadores lógicos bit a bit no realizan cortocircuitos.
Resultados
a |
true |
false |
---|---|---|
!a |
false |
true |
and |
a |
||
---|---|---|---|
true |
false |
||
b |
true |
true |
false |
false |
false |
false |
or |
a |
||
---|---|---|---|
true |
false |
||
b |
true |
true |
true |
false |
true |
false |
En la resolución de sobrecarga contra operadores definidos por el usuario, las siguientes firmas de funciones integradas participan en la resolución de sobrecarga:
booloperator!(bool) |
||
booloperator&&(bool,bool) |
||
booloperator||(bool,bool) |
Ejemplo
#include#include intmain()!p && n !=2)//
Producción:
true Enter 'quit' to quit.> test > quit
Biblioteca estándar
Debido a que las propiedades de cortocircuito de operator&&
y operator||
no se aplican a las sobrecargas, y debido a que los tipos con semántica booleana son poco comunes, solo dos clases de biblioteca estándar sobrecargan estos operadores:
¡operador! | aplica un operador aritmético unario a cada elemento del valarray (función de miembro público de std::valarray ) |
operador&&operador || | aplica operadores binarios a cada elemento de dos valarray, o un valarray y un valor (plantilla de función) |
¡operador! | comprueba si ha ocurrido un error (sinónimo de fail() ) (función de miembro público de std::basic_ios ) |
Ver también
Precedencia del operador.
Sobrecarga del operador.
Operadores comunes | ||||||
---|---|---|---|---|---|---|
asignación | incremento decremento |
aritmética | lógico | comparación | miembro acceso |
otro |
|
|
|
|
|
|
|
Operadores especiales | ||||||
|
Sección de Reseñas y Valoraciones
Al final de la post puedes encontrar las notas de otros gestores de proyectos, tú además puedes insertar el tuyo si te gusta.