花括号列表初始化,作为C++11新标准的一部被加入到了C++中。
所谓花括号列表初始化,即是用花括号来初始化变量,其形式如: int test = { 0 } ;无论是初始化对象还是为对象赋值 , 在C++11下都可以使用这种形式的初始值。
不同的一点 是:使用这种形式来初始化内置类型的变量时,若存在类型转换且具有丢失信息的风险时,编译器将会报错。-----------通过这一点可以看出,列表初始化比原有的初始化方式具有更严格的安全要求。下面是例子:
long double ld = 3.1415926536;
int a {ld} , b = {ld} // 编译器报错,存在丢失信息的风险
int c (ld) , d = ld ; //正确