我在刪除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