• 3829阅读
  • 2回复

刚学习Qt时的几点疑问 [复制链接]

上一主题 下一主题
离线dshzhou
 
只看楼主 倒序阅读 楼主  发表于: 2009-12-11
Qt控件类的对象都用new()来创建,如果不用new()创建会出错,为什么?
另外,用new()创建的这些对象当然是在堆上进行分配的,当然系统不会
自动进行回收,程序也并没有显式进行回收.那么不会造成内存泄漏吗?
离线dbzhang800

只看该作者 1楼 发表于: 2009-12-11
引用楼主dshzhou于2009-12-11 15:19发表的 刚学习Qt时的几点疑问 :
Qt控件类的对象都用new()来创建,如果不用new()创建会出错,为什么?

你在哪儿看到的这样会出错呢?



另外,用new()创建的这些对象当然是在堆上进行分配的,当然系统不会
自动进行回收,程序也并没有显式进行回收.那么不会造成内存泄漏吗?


Qt的类绝大多数都是 QObject的派生类(有parent参数,父对象会管理子对象),,具体可以看manual中 Qt Object Model
离线knowkjava
只看该作者 2楼 发表于: 2009-12-11
对于子组件,只要父对象被 delete,子组件就会被Qt自动回收,无需要我们显式回收
这是Qt给我们能够管理一部分内存的原因所在,Qt正是通过遍历parent属性来防止这一部分内存泄露的。
快速回复
限100 字节
 
上一个 下一个