qt编程,怎么能避免内存泄露
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt编程,怎么能避免内存泄露相关的知识,希望对你有一定的参考价值。
为了方便类的调用,在一个头文件中用extern声明了很多类的对象,在cpp文件中调用了其他类的对象,实现一些功能,那为了避免内存泄露,应该怎么把这些指针对象删除啊?防止内存泄露
首先要说的是,声明对象并不会创建新的对象,只有定义一个对象才会为他分配空间,所以你在不同文件中调用的同名的全局对象都是同一个。如果你定义的时候是类似QIcon icon; 这样的形式,那么程序会在执行完以后自动释放。
如果定义的是QIcon *icon; 这样的,并且你给这个icon new过的话,那么分两种情况:
1,你为这个控件指定了父窗体,那么不需要你释放,在父窗体被释放时这个对象也会被qt自动释放
2,没有指定父窗体或者不是控件类型的,可以在程序解释前delete icon 参考技术A new delete要配好对
Xcode结合Leaks检测内存泄露
参考技术A重要的事情要说三遍。虽然现在项目大多数是ARC模式,Xcode会帮我们管理内存,但并不意味着这样就不会存在内存泄露的现象。Xcode里面有一个工具Instruments,这个工具可以检测项目的性能。
1.command+i 开启 Instruments工具
Xcode结合Leaks检测内存泄露,让内存泄露无所遁形!就是那么简单
以上是关于qt编程,怎么能避免内存泄露的主要内容,如果未能解决你的问题,请参考以下文章