【发布时间】:2020-05-13 17:22:20
【问题描述】:
bool a{ false };
现在我创建了一个布尔变量,但如果我想这样做:
a { false };
a = false;
第一种方法不行,是什么原因?
【问题讨论】:
-
因为你没有在那个表达式中初始化
a。在最后一个表达式中,您正在分配。 -
因为当你“覆盖”它时,你不再初始化它了!只能初始化一次。
标签: c++
bool a{ false };
现在我创建了一个布尔变量,但如果我想这样做:
a { false };
a = false;
第一种方法不行,是什么原因?
【问题讨论】:
a。在最后一个表达式中,您正在分配。
标签: c++
您只能在创建对象时进行统一初始化(或任何形式的初始化)。对象初始化后,只能修改:
bool a{false}; // brace initialization
bool b = false; // copy initialization
// a and b are created now, and can't be initialized again
a {false}; // not valid syntax
b = false; // assignment, NOT initialization
【讨论】: