在C ++中初始化变量的准则是什么?有很多方法可以在C ++中初始化变量。我熟悉的3种方式如下:
1)int a = 3;
2)int a(3);
3)int a {3}; //适用于C ++ 11&后
哪种方法最好?为什么第二种方式是a(3);经常看不到这样的情况。没有在C ++程序中使用?
感谢。
答案 0 :(得分:3)
前两个初始化具有完全相同的效果。我猜大多数人比第二种选择更喜欢第一种选择,因为它看起来更自然。
然而,第三种选择有不同的规则:它禁止缩小转换。所以尽管你可以做到
int a = .3;
并获得等于零的int
,
int a {.3};
将是编译时错误。因此,大括号初始化程序的优势在于它可以阻止您在意外情况下进行此类转换,并强制您明确表明您打算如果确实想要缩小转换。