j'ai une classe d'un élément de données bool
qui est non initialisé par le constructeur. Si jeImpression d'une bool non initialisée en utilisant Cout (C++)
cout << x.myBoolDataMember;
où x
est un objet de cette classe dans laquelle le bool
n'a pas été initialisé, je reçois parfois un nombre aléatoire plutôt que 0 ou 1. (j'utilise gcc
.) Est-ce comportement compatible avec le Standard
?
Il est difficile de parler de valeurs en présence d'un comportement indéfini. 'bool' n'a que deux valeurs possibles,' false' et 'true'. Le fait que 'cout << b' renvoie autre chose que' 0' et '1' est une conséquence du fait que le comportement n'est pas défini, pas que' b' ait une "valeur" autre que 'false' ou 'true'. – avakar
True. Il pourrait également imprimer rien du tout, 0,5, "bleu", ou émettre de la fumée – MSalters
Vous pourriez transformer en un chat. Les démons peuvent voler hors de votre nez. –