Ich habe eine Klasse mit einem bool
Datenelement, das nicht vom Konstruktor initialisiert wird. Wenn ich das tueDrucken eines nicht initialisierten bool mit cout (C++)
cout << x.myBoolDataMember;
wo x
ein Objekt dieser Klasse ist, in dem die bool
nicht initialisiert wurde, erhalte ich manchmal eine Zufallszahl eher als 0 oder 1 (Ich verwende gcc
.) Ist das Verhalten konform mit der Standard
?
Es ist schwierig, bei nicht definiertem Verhalten über Werte zu sprechen. 'bool' hat nur zwei mögliche Werte,' false' und 'true'. Die Tatsache, dass "cout << b" etwas anderes als "0" und "1" ausgibt, ist eine Konsequenz davon, dass das Verhalten nicht definiert ist, und nicht von "b" einen anderen "Wert" als "falsch" oder "wahr" hat. – avakar
Wahr. Es könnte auch nichts drucken, 0,5, "blau", oder Rauch ausstrahlen – MSalters
Sie könnten in eine Katze verwandeln. Dämonen könnten aus deiner Nase fliegen. –