[英]Printing an uninitialized bool using cout (C++)
我有一个类,其中bool
数据成员未被构造函数初始化。 如果我做
cout << x.myBoolDataMember;
其中x
是此类的一个对象,其中bool
尚未初始化,我有时得到一个随机数而不是0或1.(我正在使用gcc
。)这种行为是否符合Standard
?
这种行为是否符合标准?
是! 在代码中使用垃圾值(未初始化)会调用未定义的行为
是。 未初始化的变量可以具有任何值。
一旦“<<”运算符不检查bool,这种行为是正确的。
这里的问题隐藏在bool本身中:程序使用多个位来存储bool。 这取决于实施。 有时只能使用一位来存储bool。
有时候更多,而且就是这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.