QSA的子对象删除问题

| 我在删除QSA的引用对象时遇到了一些问题。在构造函数中,我写道:
  QSProject * project = {initialization of QSProject}
  MyWrapper * wrapper = new MyWrapper; // MyWrapper is QObject\'s child. It comes without parent here
  project->addObject(wrapper);
我曾在描述符中写道:
  project->clearObjects();
  delete project;
  delete wrapper;
当我试图删除包装器时,此代码会导致析构函数执行时出现段错误。 我进行了一些研究,我知道: QSProject不会删除其“子对象”,因此这不是“双重删除”问题 如果我不向构造函数中的QSProject添加包装器,则效果很好。 如果我不删除描述符中的包装器,则它会很好地工作(但会导致内存泄漏)。 这是怎么回事?     
已邀请:
首先,我对QSA不熟悉,但是考虑到Qt API通常如何工作,QSProject可能会拥有该对象的所有权。这意味着QSProject正在使用QObject :: setParent()来重新创建对象。 在这种情况下,您将删除该对象。 您是否已使用valgrind之类的工具验证了删除删除文件时实际上在泄漏内存?     

要回复问题请先登录注册