C++ 构造函数初始化列表:为什么以及如何使用它
实例化对象时,构造函数通常会处理成员变量的初始化。对于此类成员,构造函数的初始化列表在执行构造函数的主体之前提供了一种简短且有效的初始化方法。除了性能之外,有时由于 const 变量或基类成员的原因,它也是必需的。
什么是构造函数初始化列表?
构造函数初始化列表是直接初始化成员变量的过程,因此不存在复制然后赋值的默认构造函数。
语法
构造函数列表初始化的语法如下-
<前>09前>这里,member1和member2是在构造函数体运行之前用param1和param2初始化的。
构造函数初始化列表示例
这是一个简单的示例,演示如何使用初始化列表。
<前>19前>输出
<前>26前>为什么使用构造函数初始化列表?
- 避免默认初始化后重新分配,以节省时间和资源。
- 对于某些类型的 const 变量、引用成员和基类成员来说,它是强制性的。
- 它将所有初始化逻辑保留在一处,与构造函数主体分开。
特殊情况
下面,我们将讨论构造函数初始化列表的一些特殊情况 -
常量或引用成员
const变量和引用成员不能重新赋值,因此必须在初始化列表中对其进行初始化,
<前>30前>基类初始化
当派生类继承自基类时,可以使用初始化列表来调用基类的构造函数,
<前>49前>C语言