У меня есть некоторые проблемы с удалением указанных объектов 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 в конструкторе, он работает хорошо.
- Если я не удаляю оболочку в дескрипторе, она работает хорошо (но утечки памяти).
Что случилось?