Форум программистов, компьютерный форум CyberForum.ru

В каких случаях возникает необходимость в создании своего деструктора? - C++

Восстановить пароль Регистрация
 
demigod324
4 / 2 / 0
Регистрация: 17.03.2013
Сообщений: 102
28.01.2014, 14:02     В каких случаях возникает необходимость в создании своего деструктора? #1
Подскажите пожалуйста, в каких случаях возникает необходимость в создании своего деструктора?
Я знаю, что деструктор обычно используется, если при уничтожении объекта нужно освободить память, которую занимал объект.
Но возможно есть и другие случаи, возможно более специфические. Если можно, то с примерами)
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
28.01.2014, 14:04     В каких случаях возникает необходимость в создании своего деструктора? #2
насколько я знаю, свой "глубокий" деструтор нужен только если в объекте применялось динамическое выделение памяти
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
28.01.2014, 14:10     В каких случаях возникает необходимость в создании своего деструктора? #3
Цитата Сообщение от demigod324 Посмотреть сообщение
Я знаю, что деструктор обычно используется, если при уничтожении объекта нужно освободить память, которую занимал объект.
Не только память, любые ресурсы (закрыть файлы например). Вообще в теле деструктора может быть любой код по сути (только исключения оттуда бросать не стоит), что там должно быть уже зависит...
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
28.01.2014, 14:15     В каких случаях возникает необходимость в создании своего деструктора? #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от demigod324 Посмотреть сообщение
Подскажите пожалуйста, в каких случаях возникает необходимость в создании своего деструктора?
да стопятсот случаев
освободить память
закрыть файлы
сохранить значения
вывести на экран
.....................

короче от задачи зависит

Добавлено через 4 минуты

Не по теме:

есть такая притча
что когда монахи решат задачу "ханойская башня" ( перложат все 64 кружочка)то наступит "конец света"
вот можешь написать такой класс, а в деструкторе взорвать бомбу

dzrkot
28.01.2014, 14:17
  #5

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
есть такая притча
что когда монахи решат задачу "ханойская башня" ( перложат все 64 кружочка)то наступит "конец света"
вот можешь написать такой класс, а в деструкторе взорвать бомбу
так и не решил эту башню...рекурсия будь ты проклята

stima
429 / 284 / 16
Регистрация: 22.03.2011
Сообщений: 923
Завершенные тесты: 1
28.01.2014, 14:28     В каких случаях возникает необходимость в создании своего деструктора? #6
для реализации идиомы RAII
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2014, 14:43     В каких случаях возникает необходимость в создании своего деструктора?
Еще ссылки по теме:

В каких случаях необходимо включать include string C++
C++ В каких случаях нужно создавать динамические переменные, а в каких статические?
Static обьект, в каких случаях применяется? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
28.01.2014, 14:43     В каких случаях возникает необходимость в создании своего деструктора? #7
1. Если класс непосредственно управляет выделением ресурса в конструкторе, то требуется деструктор (а еще и копирующий/перемещающий конструктор, оператор присваивания), в котором этот ресурс будет освобождаться.
2. Если ресурс захватывается косвенно, например другим классом, который является членом текущего, то деструктор (и пр.) не нужны, т.к. см. п.1.
Yandex
Объявления
28.01.2014, 14:43     В каких случаях возникает необходимость в создании своего деструктора?
Ответ Создать тему
Опции темы

Текущее время: 03:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru