QT5学习笔记 4、对象树

本文介绍了在C++中,特别是使用QObject及其派生类时,对象的构造顺序(自上而下)和析构顺序(自下而上)的概念,通过实例演示了如何理解和应用这一特性。
摘要由CSDN通过智能技术生成

本文是学习哔哩哔哩斧头帮帮主QT教程的学习笔记,图片和代码来自于网络,如有侵权请联系删除。

当创建的对象父窗口是QObject或者是QObject派生下来的类,此对象会放到对象树上,当程序执行完毕,树上的内容会从下往上依次释放。

继续使用上一节所编写的项目,选中项目名称,然后点鼠标右键,选择添加新文件

点击choose

输入自定义类名MyPushButton,因为没有QPushButton这个父类可选 ,所以我们选择QWidget,点击下一步,完成

就可以生成相应的cpp和.h文件

切换到mypushbutton.h中,应该是这样的

进行如下修改

切换到mypushbutton.cpp中,进行如下修改,加上一个析构函数,qDebug()和C++中的cout作用差不多

之后切换到mywidget中,添加自定义按钮头文件

添加如下代码并运行

在x掉窗口以后输出

这里显示的是先输出父类的,再输出子类的,和我们想的是不是不太一样,在C++中我们的认识是先析构掉子类,再析构父类

其实这里实质上也是一样的,只不过它先是调用了父类的析构函数,但并没真正析构释放掉这个对象,析构的顺序还是从子类到父类。

构造顺序自上而下,析构顺序自下而上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值