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