我知道這樣的問題已經被問到死,但我想知道是否有無論如何使用Boost庫指針等做我的問題說沒有基本上我有以下的一段清理代碼刪除對象的雙維度的QList(的QList <的QList>)有沒有辦法安全地刪除非唯一指針的QList到MYOBJECT?
#include <QList>
QList< QList<MyObject*> > m_Data;
...
void CleanupMyObjectList
{
int numFrames = m_Data.size();
for(int i=0; i < numFrames; i++)
{
int numObjects = m_Data.at(i).size();
for(int j=0; j < numObjects; j++)
{
MyObject* removedObject = m_Data[i].at(j);
if(removedObject != NULL)
{
delete removedObject;//This assumes that the pointers are UNIQUE in this list!!! If not it will crash!!!
removedObject = NULL;
}
}
m_Data[i].clear();
}
m_Data.clear();
}
指向指針,當我試圖清理非唯一或共享(填充列表它確實崩潰是這個正確的術語?)的指針,例如,當M_DATA [0] [1]等於M_DATA [1] [1]。
我知道爲什麼會崩潰,所以請保存解釋爲,而是我想知道是否有無論如何與代碼儘可能小的修改安全地刪除這些對象。
是myObject的也許是自QObject衍生? – 0xbaadf00d 2011-04-07 09:36:09