面试题答案
一键面试- 默认初始化顺序:
- 首先初始化基类(如果有基类)。
- 然后按照成员变量在类中声明的顺序进行初始化。在
ClassA
中,先初始化int a
,接着初始化double b
,最后初始化ClassB
类型的对象objB
。
- 调整
a
和b
的初始化顺序: 在ClassA
的构造函数初始化列表中,按照想要的顺序初始化b
和a
。例如:
class ClassB {
// ClassB的成员变量和函数声明
};
class ClassA {
private:
int a;
double b;
ClassB objB;
public:
ClassA(): b(0.0), a(0), objB() {
// 构造函数体
}
};
在上述代码中,通过在构造函数初始化列表中先写b(0.0)
,再写a(0)
,实现了先初始化b
再初始化a
,最后初始化objB
。