10_Qt的内存自动释放
2017-07-05 17:45
176 查看
一Qt的控件parent作用
二Qt的建议
想想:如果子孙的空间在父控件之前就示范了,会发生什么事情呢?
其实这个要分两种情况考虑;如果是在堆上创建的控件则不会出错,如果是在栈上开辟的控件则会报错。
下面就是在栈上开辟的控件label,出错了。
大家可以自己试试看在堆上开辟的控件,亲测无错。
二Qt的建议
一、Qt的控件parent作用
如果控件指定了parent,则在释放父控件(不是真正的继承关系,只是依托)时候,会先释放自己子孙的控件。想想:如果子孙的空间在父控件之前就示范了,会发生什么事情呢?
其实这个要分两种情况考虑;如果是在堆上创建的控件则不会出错,如果是在栈上开辟的控件则会报错。
下面就是在栈上开辟的控件label,出错了。
大家可以自己试试看在堆上开辟的控件,亲测无错。
#if 0 QLabel label( "do" ) ; QWidget w ; label.setParent( &w ) ; w.show() ; #endif #if 0 /*这个能通过*/ QWidget w ; QLabel label( "do" ) ; label.setParent( &w ) ; w.show() ; #endif
二、Qt的建议
最好就是利用堆去开辟指针,这就是我们经常看到的。qt中大量使用指针,却很少释放。相关文章推荐
- Qt的内存释放策略(内存自动释放机制)
- qt 对话框关闭以及自动释放内存
- Qt的内存释放策略(内存自动释放机制)
- 有关自动释放池的内存堆积问题
- Qt关闭窗体自动释放资源
- 【iOS-cocos2d-X 游戏开发之十五】Cocos2dx中响应Android的Back(返回)与Menu(小房子)事件&&Cocos2dx自动释放粒子内存函数!
- using除了引用命名空间外在自动释放内存资源方面的应用
- delete 指针之后 ,只是释放了指针指向的内存空间,指针不会自动置为NULL,还有delete 遇到指针为NULL时不会调用析构函数
- Cocos2d-x内存自动释放机制--透彻篇
- objective-c 内存自动释放(1)
- java如何进行内存自动释放、垃圾回收?
- Qt中特有的类对象机制——内存自动释放
- 使用auto_ptr来自动释放内存
- cocos2dx之内存管理的几个自动释放内存的宏及条件判断
- Linux 每天自动释放系统内存的脚本
- cocos2d-x内存自动释放机制
- Qt编程技巧 窗口关闭时释放内存
- 全自动释放PPC内存!!
- 17-1 函数运用结束之后内存就自动释放了,没有返回a,b的值
- C++ 0x 使用 shared_ptr 自动释放, 防止内存泄漏