[英]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.