Qt图形界面编程入门(7)

本文详细介绍了Qt中派生类的构造函数和析构函数的工作原理,强调了基类构造函数和析构函数不被继承的特点。在派生类中,必须通过基类构造函数来初始化继承的成员,并且派生类构造函数的执行顺序为:基类构造函数→内嵌对象构造函数→派生类构造函数体。相反,析构函数的执行顺序为:派生类析构函数→内嵌对象析构函数→基类析构函数。通过一个实例代码分析了这一过程。
摘要由CSDN通过智能技术生成

派生类的构造函数和析构函数

基类的构造函数和析构函数不能被继承。

在派生类中,如果派生类新增的成员进行初始化,就必须加入新的构造函数。与此同时,对所有从基类继承下来的成员的初始化工作还是由基类的构造函数完成,必须在派生类中对基类的构造函数所需要的参数进行设置。同样,对派生类对象的扫尾,清理工作也需要加入析构函数。

首先看下面例子:

class A   //默认构造函数为空
{
public:
    int x;
};
class B:public A   //默认构造函数为空
{
public:
    int y;
};

当创建B类对象b1后,对象b1可以访问下x,y这两个成员。那么是否可以认为b1实际上是下面C类的对象呢?

class C
{
public:
    int x,y;
};

若利用C类创建对象c1,从成员访问权限上看,对象b1和c1没有差别。但是b1的x和c1的x不同,它继承于基类。由于派生类不能继承父类的构造函数和析构函数,因此对象b1的x占据的内存区域只能通过基类的构造函数初始化。同样,销毁对象时,b1的x占据的内存也只能由基类的析构函数进行清理。而对象c1的x是由C类构造函数初始化,由C类析构函数进行清理工作的。因此b1和c1仅仅是表面相似而已。由于派生类构造过程涉及基类构造函数的调用,因此其构造函数比较复杂。

1、构造函数

派生类构造函数的一般形式为

派生类::派生类(参数总表)::基类1(参数表1),……&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值