C ++类中的两种不同的变量初始化。有什么不同?

吉米·希昂蒂(Jimmy Scionti)

我是一个自学成才的初学者,所以我想我会问一个很基本的问题,但是,我忽略了。

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

第一:

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

第二名:

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

如果它们基本上是同一件事,那么两者中哪一个更常见?或者,出于什么原因人们倾向于代替其他原因使用?

谢谢!

贾罗德42

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

第二个分配(默认初始化后)。它主要等效于:

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

如果privateVariable无法默认构造,则无法使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在C中有两种初始化指针的不同方法

在c ++中,这两个不同的字符串初始化之间有什么区别?

在不同的公共类中初始化变量时出现 C# 错误

C ++不同的变量初始化

float的类内静态const初始化与C ++中的int有何不同?

模板类C ++中两种不同类型的方法

为什么C和C ++编译器将显式初始化和默认初始化的全局变量放在不同的段中?

C++ 模板,两个不同文件中的重复类名,静态初始化

C ++中的两种不同的混合模式。(mixin?CRTP?)

这两种初始化实例变量的方式有何不同?

在 C# 中,如何使用具有两种不同类型的泛型?

C++:根据预处理器指令用两种不同的可能类型表示类图中的变量

C ++有没有一种方法可以对同一参数使用不同的类型来初始化类?

具有不同参数的 C# 类初始化?

为什么在C和C ++中这种不同的结构初始化行为?

C ++在容器中以不同方式初始化与作为局部变量

为什么在C#中定义属性的两种方法会有不同的结果?

有两种不同的结果将指针数组传递给C和C ++中的函数吗?

在 C++11/17 中的类初始化和直接初始化中。有什么区别?

这两种有关链表的方法有何不同?C ++中的1个论点与2个论点

C中有两种不同的指针语法,哪一种是正确的,两者之间有什么区别?

在现代C ++中初始化字符串的方式是否有所不同?

在C#9中,仅初始化属性与只读属性有何不同?

在C ++中初始化具有不同列大小的二维数组

如何对同一个类 C# 进行两种不同的验证

在C ++类中初始化大量变量

C ++对类中的未初始化变量启用警告

在 C++ 中初始化模板类私有静态变量

在C ++函数中返回两种不同类型的两个值