【发布时间】:2019-09-10 16:11:06
【问题描述】:
我对何时以及如何在构造函数中初始化类的成员有点困惑。如果我理解正确,您可以通过在类定义中包含默认值、构造函数成员初始化程序列表或通过构造函数主体中的赋值来完成此操作。我意识到最好在进入构造函数体之前进行初始化,但是什么时候应该使用成员初始化器列表,什么时候应该使用默认值?
抱歉,如果我从根本上误解了这里的某些内容。
【问题讨论】:
-
@Andreas:这个问题没有说明类定义中的默认值,这主要是这个问题的意义所在。
-
"什么时候应该使用成员初始化器列表,什么时候应该使用默认值" 使用任何对你来说更方便的东西,它们有效地做同样的事情。
-
这不是关于您遇到的问题的问题,因此它与 SO 无关。无论如何,答案主要是基于意见的。我的回答是,作为一般经验法则,如果可以,请使用内联初始化。如果不能,请使用构造函数初始值设定项列表。如果不能,请在构造函数主体中赋值。
-
这个问题对我来说似乎很切题。
-
@TonyK 当一个问题是关于 SO 的主题时,这意味着它应该可以用一个解决问题并且“正确”的答案来回答。我不认为这可以在这里实现。您可以根据人们的意见和编码风格得到不同的答案,并且无法客观地说哪些是“正确的”,哪些是“错误的”。
标签: c++ default-value initializer-list default-constructor member-initialization