我有与没有由构造初始化的bool数据成员的类。如果我

cout << x.myBoolDataMember;

其中x是这个类的一个对象,其中bool尚未初始化上,有时会而不是0或1的随机数(我使用gcc。)与Standard这种行为符合要求?

有帮助吗?

解决方案

  

这种行为是符合标准的?

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

其他提示

是。一个未初始化的变量可以具有任意值。

只要“<<”操作不查布尔,这种行为是正确的。
这里的问题是隐藏在布尔本身:程序使用一个以上的位来存储布尔。这是依赖于实现。有时只有一个位可用于存储布尔。结果 有时多,并且它是这样的情况。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top