列表初始化

1 int var = 0;
2 int var = {0};
3 int var {0};
4 int var(0);

无论是初始化对象还是某些时候为对象赋新值,都可以用这样一组右花括号括起来的初始值.

当用于内置类型的变量时,这种初始化形式有一个重要特点:如果我们使用列表初始化且初始值存在丢失信息的风险,则编译器将报错,也就是说安全性比那些作转换的更高:

1 long double ld = 3.14
2 int a{ld},b={ld};// 错误:没发生转换,因为存在丢失信息的风险
3 int c(ld),d=ld;// 正确:发生转换,精度有丢失

 

posted @ 2016-03-15 23:58  风席夜夏  阅读(281)  评论(0编辑  收藏  举报