C++ 中的变量初始化指南

Variable initialization guidelines in C++

在 C++ 中初始化变量的准则是什么?在 C++ 中初始化变量的方法有很多种。我熟悉的3种方式如下:

1) int a=3;

2) int a(3);

3) int a{3}; // valid for C++11 & later

哪种方法最好?为什么是第二种方式 int a(3);在 C++ 程序中不常见且不使用?
谢谢

前两个初始化的效果完全一样。我猜大多数人更喜欢第一个选项而不是第二个选项,因为它看起来更自然。

但是第三个选项有不同的规则:它禁止缩小转换。所以虽然你可以做

int a = .3;

并得到一个等于零的 int

int a {.3};

将是一个编译时错误。因此大括号初始值设定项的优点是它可以阻止您意外进行此类转换,并强制您在 真的 想要缩小转换时明确声明您的意图。