首页 > 其他 > 详细

qt 零星笔记

时间:2016-02-26 00:24:43      阅读:202      评论:0      收藏:0      [点我收藏+]

1.qt中堆栈对象的销毁

  名字不对,我不知道该取个什么名字,暂且这样吧

  在linux c编程中谈到过进程的内存映像,一个进程在内存中的映像如下

  技术分享

  代码段存放的是可执行程序的代码,数据段存放的是全局变量,静态变量以及常量,堆栈段中的堆存储的是动态分配的内存,也就是在c语言中用malloc等函数分配的内存空间或者c++中new对象所占有的空间

  而堆栈段中的栈在c语言中用于函数调用以及函数内部定义的局部变量。

  理解上述概念,我们再来了解一下qt中对象销毁

  在qt中有时候我们使用new来产生一个新部件,但是没有使用delete来销毁,通过代码我们知道,当部件在new时如果指定了父窗口,那么他就回添加到父窗口的一个children列表中,当父对象关闭调用完析构函

  数时会自动销毁他的children列表中的对象,new出来的对象都是使用的堆内存,都需要使用delete,但是qt的父对象帮主我们delete了,而在main函数中,我们则需要使用

QWidget w;
w.show

  这样他才会在栈空间申请内存空间,那么当程序结束的时候他会自动销毁而不用使用delete,这么以来,当我们关闭窗口的时候就销毁了这个对象,并且挂在他下面的所有子部件都会自动销毁,所以也不用我们使用delete了

 

******************************************************************************************我是分割线******************************************************************************************

qt 零星笔记

原文:http://www.cnblogs.com/reddusty/p/5218726.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!