-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


Повторный вызов деструктора

Суббота, 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

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку