【发布时间】:2020-03-03 10:33:55
【问题描述】:
我是一个自学成才的初学者,所以我想我会问一些非常基本的东西,但我忽略了。
假设您在 C++ 中有一个名为 aClass 的类,并且其中一个构造函数需要一个参数。这两种方法有什么区别?
第一个:
aClass::aClass(int aVariable) : privateVariable(aVariable) {}
第二个:
aClass::aClass(int aVariable) {
privateVariable = aVariable;
}
如果它们基本上是相同的,那么两者中哪一个更常见?或者,出于什么原因人们倾向于使用而不是其他原因?
谢谢!
【问题讨论】:
-
第一个做初始化,第二个做赋值(默认初始化后)。
-
对于引用或 const 成员,只有第一个是可能的。无论如何,只要没有具体要求第二个版本,我都会推荐它。
-
@Jarod42 在实践中不是一回事吗?如果其他方法打印“privateVariable”的值,在这两种情况下它不等于参数“aVariable”吗?
标签: c++ class variables initialization