【发布时间】:2020-09-28 13:43:06
【问题描述】:
如果我想为实例变量分配默认值,应该首选哪种方法? 有区别吗?
Class Foo {
int x = 0;
};
Class Foo {
int x;
Foo() : x(0) {}
};
【问题讨论】:
-
两种形式都无效。您应该使用
class和小c而不是Class。 -
总体上有所不同,正如答案中所回答的那样,这是一个副本。在这种情况下,您使用的是
int,所以这实际上并不重要。但一般来说,您可以写int x{0}使两者等效。至于从代码风格的角度来看哪个更好是一个离题的问题。但大多数人似乎都同意内联初始化是首选,特别是因为如果被调用的 ctor 使用该成员的初始化程序,则会跳过初始化。所以它实际上没有任何开销(没有“双重初始化”。)
标签: c++ class initialization