(1)派生类中的基类子对象和子对象必须初始化,初始化在派生类的构造函数的初始化列表中,如果初始化列表中没有进行初始化,则调用缺省的构造函数进行初始化。
(2)派生类构造函数的调用顺序:
基类的构造函数
子对象类的构造函数
派生类的构造函数
基类对象初始化只能在基类构造函数中进行
子对象其实就是成员对象
class A
{
public:
int anum;
};
class B:public class A
{
public
int bnum;
}
int main(void)
{
B b;//这时候类成员anum就是b对象的基类子对象
}
构造函数是不可继承的。因此,派生类的构造函数必须通过调用基类的构造函数初始化基类成员,不能够在派生类初始化列表直接初始化基类的成员,“越级初始化”。