c++ - C++ 类中的两个不同变量初始化。有什么不同?
问题描述
我是一个自学成才的初学者,所以我想我会问一些非常基本的东西,但是,我忽略了。
假设您有一个aClass
用 C++ 命名的类,并且其中一个构造函数需要一个参数。这两种方法有什么区别?
第一个:
aClass::aClass(int aVariable) : privateVariable(aVariable) {}
第二:
aClass::aClass(int aVariable) {
privateVariable = aVariable;
}
如果它们基本上是一样的,那两者中哪一个更常见?或者,出于什么原因人们倾向于使用而不是另一个?
谢谢!
解决方案
第一个进行初始化,应该是首选。
第二个进行分配(在默认初始化之后)。它主要相当于:
aClass::aClass(int aVariable) : privateVariable() {
privateVariable = aVariable;
}
因此,如果privateVariable
不是默认可构造的,则不起作用。
推荐阅读
- java - 如何使用 Java Stream API 查找字符串中重复出现的子字符串
- arrays - 从 Firestore 检索的空数组中检索“getDocuments”查询中的数据
- javascript - 单击其他元素后仅更改一个元素
- nestjs - 如果在ManyToOne单向关联中使用Lazy,则返回TypeORM中的__ParentEntity__
- php - Mysql子猫和父猫的帖子[数据库模式]
- java - 为什么apache spark在尝试获取spark配置时抛出异常
- swift - 向下滚动表格视图时添加分页
- c++ - 字符串流的用户定义文字
- javascript - 选择选项时打开对话框的角度
- java - 是否可以在 Spring Data 中使用 ProjectionOperation 来投影数组项?