不同种类的变量初始化

量子位

C ++中各种类型初始化的目的是什么,正确的目的是什么?

int i1 = 1;
int i2(1);
int i3{};
int i4 = {1};
int i5 = int{1};
约翰·兹温克

int i1 = 1;

这是很好的旧C风格。仍然可以正常工作,并且在C ++中是常规的。

int i2(1);

这是C ++风格。之所以出现这种情况,是因为某些类型的构造函数需要多个参数。

int i3{};

C ++ 11样式。

int i4 = {1};

这不是常规的。

int i5 = int{1};

这不是常规的。但是由于C ++ 11新增了“统一初始化语法”,因此受到支持。

int i6 = {};

您没有问这个问题,但在C ++ 11中也有效。

int i7{1};

另一个好处是,这可能是C ++ 11中统一初始化语法的最常规用法。

auto i8 = int{1};

感谢KerrekSB的可恶,他对Herb Sutter表示了深深的敬意。这可能会赢得“ No True Modern C ++”阵营的朋友,并使您对第一种语法完全满意的同事疏远。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章