Qt父子对象关系
遇到的问题
发现Qt中new好的对象不需要delete,但这在C++中是不允许的。
回答
QT的父子对象机制是在 QWidget和QOject中实现的。
当我们使用父对象来创建一个对象的时候,父对象会把这个对象添加到自己的子对象列表中。
当这个父对象被删除的时候,它会遍历它的子对象类表并且删除每一个子对象,
然后子对象们自己再删除它们自己的子对象,这样递归调用直到所有对象都被删除。
在QT中有些是可以不删除的,如果你申请的这个类继承于QObject父类,父对象被删除的时候,它会遍历它的子对象类表并且删除每一个子对象,
Qt有一个父子对象关系,但在其他C++场合一定要delete,否则会内存泄漏
建议:尽量不要new,直接声明对象,如:QFile Data;