QT中对象释放顺序的一个示例
来源:互联网 发布:1070ti 知乎 编辑:程序博客网 时间:2024/06/05 07:08
为了研究Qt中对象释放,先编写一个简单的QT 应用程序。源代码如下:
初步一看,代码没啥问题,运行也OK。 但是当关闭窗口后,出现了Crash。 怎么回事???
仔细查看代码,发现应该是创建的window对象,在关闭窗口时,弹出栈释放, 同时也将子窗口hwButton也释放。然后,创建的hwButton对象又进行弹出栈, 造成了重复释放。 难怪会出现上述问题。
修正方法是:将window对象放在hwButton对象之前进行定义初始化。 这样一来,运行时,从栈顶到栈底的对象依次是hwButton, window, hwApp. 运行关闭窗口时,hwButton先出栈释放,然后通知其父窗口window将其移除在,不再进行重复释放。
OK! 最后问题得以解决。
- QT中对象释放顺序的一个示例
- Qt中对象的释放
- Qt开发:释放线程中创建的QUdpSocket对象
- Qt开发:释放线程中创建的QUdpSocket对象
- python对象释放顺序
- Qt中特有的类对象机制——内存自动释放
- Java中new一个对象时 执行顺序的探析
- iOS中创建一个对象的调用方法顺序
- 关于java初始化顺序的一个示例
- 异常处理中对象的自动释放
- Delphi中对象释放的问题
- Delphi中对象释放的问题
- VC++中GDI对象的释放问题
- Delphi中对象释放的问题
- ArcEngine中com对象的释放问题
- c#中new一个对象以后,是否需要手动释放?
- c#中new一个对象以后,是否需要手动释放?
- Qt中事件处理的顺序
- 单击菜单生成一个非模态对话框的两种方法
- Spring3.0 Jar包大概介绍
- Rational Rose 2003 破解 注册,绝对可行。
- uva 113Power of Cryptography
- 第一篇
- QT中对象释放顺序的一个示例
- 小发猫帮助文档
- 叔本华资源分享
- 制作大型LED广告点阵屏 显示屏
- 婚姻真的要走到头___离婚
- [经验总结]一句话技巧(C++篇)
- 深入GetMessage和PeekMessage
- 多系统启动项修复(Grub)
- 事务的隔离级别2