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] 删除。
我来说两句