初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而已一个新值来替代. ——《C++ Primer 5th》

C++11 新标准中,用花括号初始化变量得到了全面应用.无论是初始化对象还是某些时候为对象赋新值,都可以使用一组由花括号括起来的初始值了.当用于内置类型的的变量时,这种初始化形式有一个重要特点:如果我们使用列表初始化且初始值存在丢失信息的风险,则编译器将报错.如:

long double ld = 3.1415926536;
int a{ld},b = {ld};  //**报错**
int c(ld), d = ld;   //**不报错 但是精度丢失**

列表初始化还可为 vector 对象的元素赋值.如:

vector<string> art - {"a", "an", "the"};

C++初始化方式

  1. 使用拷贝初始化时,只能提供一个初始值.
  2. 如果提供的是一个类内初始值,只能使用拷贝初始化或者花括号的形式初始化.
  3. 如果提供的是初始元素值的列表,只能把初始值放入花括号里进行列表初始化.
最后修改:2019 年 08 月 16 日
如果觉得我的文章对你有用,请随意赞赏