<分区>
我看到了一个初始化语法,这对我来说是新的。我在 google 和此处进行了搜索,但找不到有用的东西。
int a = 0;
int a = {0};
int a{0}; // <- this is new for me
为什么我需要第三种样式,而其他样式已经存在?它们之间到底有什么区别?
谢谢。
标签 c++
<分区>
我看到了一个初始化语法,这对我来说是新的。我在 google 和此处进行了搜索,但找不到有用的东西。
int a = 0;
int a = {0};
int a{0}; // <- this is new for me
为什么我需要第三种样式,而其他样式已经存在?它们之间到底有什么区别?
谢谢。
最佳答案
您可能对 C++11 initializer lists 感兴趣.它们可能无法解释第三个示例,但它们很有用,尤其是对于真实的类对象。
您的代码 int a{0};
名为 uniform initialization在 C++11 中。另见 most vexing parse维基页面(由 Joe Z 评论)。
至少花时间阅读 C++11维基页面。 C++11 的新特性使它成为与 C++03 几乎不同的语言。
关于C++:使用 x{0} 进行变量初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20392537/