Tengo una clase con un miembro de datos bool
que no ha sido inicializado por el constructor. Si hagoImprimir un bool no inicializado usando cout (C++)
cout << x.myBoolDataMember;
donde x
Es un objeto de esta clase en la que el bool
no se ha inicializado, a veces se produce un número aleatorio en lugar de 0 o 1. (estoy usando gcc
.) ¿Es este comportamiento cumple con el Standard
?
Es difícil hablar de valores en presencia de un comportamiento indefinido. 'bool' solo tiene dos valores posibles,' falso' y 'verdadero'. El hecho de que 'cout << b' genere algo que no sea' 0' y '1' es una consecuencia del comportamiento no definido, no de' b' que tiene un "valor" distinto de 'false' o' true'. – avakar
Es cierto. También podría imprimir nada en absoluto, 0.5, "azul", o emitir humo – MSalters
Podrías convertirte en un gato. Los demonios podrían volar fuera de tu nariz. –