我正在實施標準模板樹結構,並遇到小問題。刪除指針的方法:delete/delete []/free?
想法,每個節點將持有指向一些數據的指針。後來爲了正確地刪除元素,我需要知道它是單個指針還是指向數組的指針。
裏面我tree->ReleaseMemory()
方法我有這樣的代碼:
if (node->_data != NULL) {
switch (_destructionMethod){
case tree_delete:
delete node->_data; break;
case tree_deleteList:
delete [] node->_data; break;
case tree_free:
free(node->_data); break;
}
}
其中_destructionMethod
已節點的初始化過程中設置。 有沒有什麼辦法可以選擇正確的析構函數,而無需在初始化過程中爲其定義特殊變量?
謝謝!
我想這是一個很好的時間讓我弄清楚如何使用智能指針,可選地我會回來對象包裝。謝謝 – kirbo 2011-03-25 23:25:30