我一直在做關於它的設計作爲一個鏈表節點的類一點點工作,我想我會放棄該類自己的刪除功能與管理類相反。所以基本上是這樣的:
void Class::Delete() {
//Some cleanup code before deleting the object
delete this;
}
現在我測試過這一點,它看起來做工精細,但我已經在過去那裏的對象一直在運行的代碼中間的問題,被刪除,然後通過嘗試使用不再存在的對象明顯地崩潰了該程序。
由於「刪除這個」在函數的末尾是正確的,它顯然會退出函數並且工作正常,但是這種做法是不是一個壞主意?如果我不小心,這可能會在我的臉上炸開嗎?
可以這樣做,但正如你之前發現的那樣做並不一定安全。你不能與對象交互了。對運行然後自行死亡的線程對象有意義。如果什麼都沒有提到他們可能是好的。 – Matt 2011-06-14 05:21:52