【发布时间】:2012-05-12 14:41:53
【问题描述】:
我正在创建一个使用声明的对象数组的程序
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 循环需要额外的信息,但这超出了这个问题的直接范围)这就是我使用传统阵列的原因。我仍然想知道需要哪种行为来避免内存泄漏。
【问题讨论】:
-
您没有在数组中存储指针,所以
delete[]应该可以解决问题。
标签: c++ arrays destructor