关于C++11,简单来说,我认为可以分为以下两种:
使用auto关键字进行初始化:auto i = 1; 这种情况下,需要注意的是,使用auto时,不要使用{},也不要写auto i{1}。 这两者是有区别的,具体请参考这里。
不要使用auto关键字,使用{}初始化。 整数 i{1}; 像这样。 不要使用自动i{1}。
简而言之,不要同时使用 auto 和 {}。
{} 初始化的优点是可以避免它。
另外,需要注意的一点是。
v{};这里调用默认构造函数。
v{1}; 这里调用的是带参数的构造函数。
也就是说:
如果 a 或 -list 可以是 ,则 .
如果 -list 和“”都可以是 -list 。
因此,v(1) 和 v{1} 是不同的。
另外,C++编译器在创建类构造函数的初始化列表时不能使用{}。 它默认将这个{}视为(),因此它无法处理和执行上面的内容。 这是一个错误。