我正在创建一个使用声明的对象数组的程序
Element * elements = new Element[number];
其中一个元素是一个class
具有/需要自己的析构函数的元素。
当我去删除它时,我会只使用数组删除,并且让程序担心调用析构函数:
delete [] elements;
或者我是否使用关键字 delete 显式调用每个项目的析构函数:
for(int ii = 0; ii< ArraySize; ii++)
delete elements[ii];
delete [] elements;
注意:我知道我可能会使用类似的东西boost::ptr_vector
,但我想要类似于hashTable
功能(所以 for 循环需要额外的信息,但这超出了这个问题的直接范围),这就是我使用传统数组的原因。我仍然想知道需要哪种行为来避免内存泄漏。