只是一個快速的小問題:刪除對象:: vector的
#define SAFE_DELETE(p) if((p)) { delete(p); (p) =NULL; }
#define SAFE_DELETE_A(pa) if((pa)) { delete[](pa); (pa)=NULL; }
// Add objects to our vector
for(int a = 0; a< 150; a++)
{
CObject *pNewObject = new CObjectPlane(...)
m_vpObjects.push_back(pNewObject);
}
// Delete all objects stored in our vector
std::vector<CObject*>::iterator itObject;
for(itObject = m_vpObjects.begin(); itObject!=m_vpObjects.end();)
{
SAFE_DELETE((*itObject));
itObject = m_vpObjects.erase(itObject);
}
m_vpObjects.clear();
1)將存儲在性病中刪除對象::向量(CObject的*)
2)它是安全的這樣刪除它們?
你的SAFE_DELETE()有點傻。 C++保證在NULL指針上刪除是一個noop,所以不需要先檢查。 – FatalError 2012-02-28 15:03:20
另外我認爲這些#定義不是一個好主意 - 它們可能會導致一些副作用。有點偏離主題,但它是使用原始指針而不是某種智能指針的要求嗎? – 2012-02-28 15:06:57