Qt学习:内存管理(指针管理)

内存管理的主旨就是不需要的对象要及时销毁删除掉,释放掉内存占用,否则造成内存泄漏。

内存泄漏指的是一个对象,已经没用了,在软件中被删除了,但是他还在内存当中存在着。

但是当软件整个被关掉的时候,这些内存都会被释放掉。

当前计算机配置水平,轻微的内存泄漏不会有很大的问题;如果是7*24小时运行的软件,比较需要慎重对待内存泄漏的问题,否则只要大方面没问题,小泄漏也是无伤大雅的。

其他语言的自动内存管理(垃圾回收):其实垃圾回收并不是立即执行的,甚至会当垃圾积累到一定的量才启动清理。

即使是大厂(比如firefox曾经内存泄漏直到几年后才找到问题)也有内存泄漏的问题。

qt内存管理主要注意以下几点:

(1)关闭时自动清理

一个窗口应该在构造函数设置,当他被关闭的时候,让他自动delete:

    setAttribute(Qt::WA_DeleteOnClose);// 当关闭时会自动delete

(2)子控件要指定父对象

一个窗口可能会有子控件。虽然明显这些子控件是依附于父窗口而存在的,但是程序并不知道。要将父窗口对象传入子控件,那么当父窗口被销毁的时候,这些子控件也会被销毁并释放内存。

简单的说就是子控件初始化时要把this(比如父窗口是一个QDialog)通过构造函数传入:

    QFrame * headFrame = new QFrame(this);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值