面试题答案
一键面试class Base {
public:
int baseVar;
};
class Derived : public Base {
public:
double derivedVar;
Derived(int bv, double dv) : baseVar(bv), derivedVar(dv) {}
};
- 初始化列表执行顺序:先初始化基类的成员变量
baseVar
,再初始化派生类的成员变量derivedVar
。 - 原因:在C++的继承体系中,基类对象是派生类对象的一部分,并且在派生类对象构造之前,基类对象必须先被构造完成。因此,初始化列表按照基类成员变量在前,派生类成员变量在后的顺序进行初始化。