Повторный вызов деструктора
|
|
Суббота, 26 Декабря 2020 г. 08:38
+ в цитатник
FasterHarder: Всем хай! Сходу к делу без всякой разминки.
Есть класс TVector и есть у него деструктор вот такой:
~TVector(void)
{
delete[] this->data; // уничтожаем данные
this->data = NULL; // не оставляем висячих указателей
this->n = 0; // данных нет, поэтому кол-во элементов стало равно 0
}
тут вроде все легко и все работает, но в условии задачи есть такое требование:
"
надо корректно обрабатывать ситуацию повторного вызова деструктора. В этом случае деструктор не должен пытаться освобождать в динамической памяти объекты повторно"
я не оч.выкупил, что требуется, но решил добавить такую проверку в деструкторе:
~TVector(void)
{
if(this->n != 0)
{
delete[] this->data; // уничтожаем данные
this->data = NULL; // не оставляем висячих указателей
this->n = 0; // данных нет, поэтому кол-во элементов стало равно 0
}
}
Вопрос: это нужно было сделать с деструктором или нет?) Если нет, то, что??
https://forum.sources.ru/index.php?showtopic=421048&view=findpost&p=3843147
Метки:
C/C++:
Общие вопросы
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-