我在C ++程序中有一些输入标志,它们都是假的。我认为它可能很好,如果我可以将它们全部初始化为假。所以我试过了:
bool flagA, flagB, flagH = false;
但是当我尝试这个时,标志没有正确设置。 flagA显然被初始化为真? 明确地设置标志。
bool flagA = false;
bool flagB = false;
bool flagH = false;
我正在使用g ++,并且我没有收到编译器错误或警告。我知道该程序行为不端,因为flagA设置为true时会将程序输出发送到本地打印机。就是想。
答案 0 :(得分:3)
当编译器看到bool flagA, flagB, flagH = false;
时,他翻译为
用户需要三个
bool
值,名为flagA
,flagB
和flagC
。哦,flagC
应初始化为false
。
的写作时间更短
bool flagA;
bool flagB;
bool flagC = false;
由于它们是局部范围变量(可能),因此无法保证使用默认值初始化它们。