【发布时间】:2013-08-17 03:45:49
【问题描述】:
在C++11 中,可以使用如下统一初始化来初始化struct:
struct BasicStruct {
BasicStruct (int x, double y) : x_{x}, y_{y} {}
private:
int x_;
double y_;
};
BasicStruct var1{5, 3.2};
问题:
什么时候应该使用这种语法
BasicStruct var1{5, 3.2}而不是像BasicStruct var1(5, 3.2)这样调用构造函数?我什么时候应该初始化像
x_{x}这样的属性而不是老式的x_(x)?
【问题讨论】:
-
不,这是“为什么”,这是“何时”。认真的人。
-
@Potatoswatter stackoverflow.com/questions/1863784/… 等
-
@Rapptz 好的,现在找到一个有意义的答案,或者比我在这里添加的更好:)
-
@Potatoswatter 在我看来,您的回答并没有真正为重复链接添加任何内容。
-
@Rapptz 它还解释了区别是什么,引用了标准,没有提到一般的最佳实践。第二个答案是完全错误的。