Qt父子对象关系

遇到的问题

发现Qt中new好的对象不需要delete,但这在C++中是不允许的。

回答

QT的父子对象机制是在 QWidget和QOject中实现的。
当我们使用父对象来创建一个对象的时候,父对象会把这个对象添加到自己的子对象列表中。
当这个父对象被删除的时候,它会遍历它的子对象类表并且删除每一个子对象,
然后子对象们自己再删除它们自己的子对象,这样递归调用直到所有对象都被删除。

在QT中有些是可以不删除的,如果你申请的这个类继承于QObject父类,父对象被删除的时候,它会遍历它的子对象类表并且删除每一个子对象,

Qt有一个父子对象关系,但在其他C++场合一定要delete,否则会内存泄漏

建议:尽量不要new,直接声明对象,如:QFile Data;

参考:从Qt的delete说开来

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器