派生类不仅继承了基类的成员,还添加了新的成员进行了功能的扩充。因此在建立派生类的实例对象时,不仅要初始化派生类对象的基类成员,还要对派生类的新增成员进行初始化。但由于基类的构造函数和析构函数不能被继承,因此派生类构造函数必须负责调用基类构造函数,并对其所需要的参数进行设置。同样,对派生类对象的清理工作也需要加入新的析构函数。
》派生类的构造函数
派生类的数据成员由所有基类的数据成员与派生类新增的数据成员共同组成。构造派生类的对象时,必须对全部数据成员进行初始化。因此,派生类的构造函数必须要以合适的初值作为参数,调用基类的构造函数用以初始化基类的数据成员,并对新增的数据成员进行初始化。
派生类构造函数的一般格式:
<派生类名>::<派生类名>(<总参数表>):<基类名1>(<参数表1>),<基类名2>(<参数表2>),<基类名3>(<参数表3>),......
{
<派生类构造函数体>

派生类在初始化时需要通过构造函数调用基类构造函数来初始化基类成员,并对自身新增成员进行初始化。派生类构造函数执行顺序为:先调用基类构造函数(按声明顺序),再初始化新增成员,最后执行派生类构造函数体。派生类析构函数则逆序执行,先清理派生类新增成员,再调用基类析构函数。如果基类有参数化的构造函数,派生类必须定义构造函数;若基类有默认构造函数,派生类可省略对基类构造函数的调用。
最低0.47元/天 解锁文章
481

被折叠的 条评论
为什么被折叠?



