首页 > 解决方案 > C++ 类中的两个不同变量初始化。有什么不同?

问题描述

我是一个自学成才的初学者,所以我想我会问一些非常基本的东西,但是,我忽略了。

假设您有一个aClass用 C++ 命名的类,并且其中一个构造函数需要一个参数。这两种方法有什么区别?

第一个:

aClass::aClass(int aVariable) : privateVariable(aVariable) {}

第二:

aClass::aClass(int aVariable) {
    privateVariable = aVariable;
}

如果它们基本上是一样的,那两者中哪一个更常见?或者,出于什么原因人们倾向于使用而不是另一个?

谢谢!

标签: c++classvariablesinitialization

解决方案


第一个进行初始化,应该是首选。

第二个进行分配(在默认初始化之后)。它主要相当于:

aClass::aClass(int aVariable) : privateVariable() {
    privateVariable = aVariable;
}

因此,如果privateVariable不是默认可构造的,则不起作用。


推荐阅读