C++:使用 x{0} 进行变量初始化

标签 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/

相关文章:

c++ - 函数调用中的新运算符

C++0x 并发同步,是需要的栅栏

c++ - 从存储对象的 vector 访问变量

c++ - 为什么 vector 下标超出范围?

c++ - 是否可以将多个名称放在一个字符串中?

c++ - 当我们有常规数组时,为什么我们需要指向数组的指针?

c++ - C 字符串比定义的长度短一个字符?

c++ - 检测 C++ 二进制文件是否被优化

c++ - 在 C++ 头文件中放置 using 指令的位置

c++ - 不知道如何在 VS 中更改文本颜色