我在删除QSA的引用对象时遇到了一些问题。在构造函数中,我写道:QSA的子对象删除问题
QSProject * project = {initialization of QSProject}
MyWrapper * wrapper = new MyWrapper; // MyWrapper is QObject's child. It comes without parent here
project->addObject(wrapper);
我在descructor写道:
project->clearObjects();
delete project;
delete wrapper;
此代码原因在段错误析构函数的执行,正是 - 当我试图删除包装。
我做了一些研究,我知道:
- QSProject不会删除他的“子对象”,所以这不是一个“双删除”的问题
- 如果我不去在构造函数中添加包装到QSProject中,它运行良好。
- 如果我不删除在deccructor包装,它运作良好(但内存泄漏)。
这是怎么回事?
只要你知道,你知道QSA已被弃用,并在2008年达到报废?它已被替换为[QtScript](http://doc.qt.nokia.com/latest/qtscript.html)。它可能不适用于你的项目,但我想确保你知道。 – Casey 2011-04-25 16:33:13