Я создаю программу, которая использует массив объектов, объявленный судаления объектов из массива
Element * elements = new Element[number];
где элементом является class
, который имеет/нужен свой собственный деструктор.
, когда я иду, чтобы удалить это я бы использовать просто использовать массив удаления, и есть программа беспокоиться о вызове деструктора:
delete [] elements;
или я называю деструктор для каждого элемента явно с помощью ключевого слова удаления:
for(int ii = 0; ii< ArraySize; ii++)
delete elements[ii];
delete [] elements;
Примечание: Я понимаю, что я мог бы использовать что-то вроде boost::ptr_vector
, но я хотел похож на hashTable
функциональность (так для цикла потребуется дополнительная информация, но это находится вне прямой сферы этого вопроса), поэтому я использую традиционный массив. Я все равно хотел бы знать, какое поведение необходимо для предотвращения утечек памяти.
Вы не храните указатели в своем массиве, поэтому 'delete []' должен делать трюк. – chris