- 初始化引用成员变量
在C++中,引用必须在定义时初始化,因此当类中有引用成员变量时,必须使用初始化成员列表。
class RefClass {
public:
int& ref;
RefClass(int& value) : ref(value) {}
};
- 初始化const成员变量
const
类型的成员变量一旦初始化后就不能再修改,所以必须在构造函数的初始化列表中初始化。
class ConstClass {
public:
const int num;
ConstClass(int value) : num(value) {}
};
- 调用基类的带参数构造函数
当派生类构造函数需要调用基类的带参数构造函数时,需要在初始化成员列表中进行。
class Base {
public:
int baseValue;
Base(int value) : baseValue(value) {}
};
class Derived : public Base {
public:
Derived(int value) : Base(value) {}
};
- 初始化成员对象(该对象所属类没有默认构造函数)
如果类中包含一个成员对象,而该成员对象所属的类没有默认构造函数,那么必须在初始化列表中初始化该成员对象。
class MemberClass {
public:
int data;
MemberClass(int value) : data(value) {}
};
class OuterClass {
public:
MemberClass member;
OuterClass(int value) : member(value) {}
};