使用cout打印未初始化的bool(C ++)

时间:2010-01-28 11:37:43

标签: c++ cout initialization ostream

我有一个带有bool数据成员的类,它没有被构造函数初始化。如果我做

cout << x.myBoolDataMember;

其中x是此类的一个对象,其中bool尚未初始化,我有时得到一个随机数而不是0或1.(我正在使用gcc 。)这种行为是否符合Standard

3 个答案:

答案 0 :(得分:10)

  

此行为是否符合标准?

是的!在代码中使用垃圾值(未初始化)会调用未定义的行为

答案 1 :(得分:4)

是。未初始化的变量可以具有任何值。

答案 2 :(得分:0)

只要“&lt;&lt;”操作员不检查bool,这种行为是正确的 这里的问题隐藏在bool本身中:程序使用多个位来存储bool。这取决于实施。有时只能使用一位来存储bool 有时更多,而且就是这种情况。