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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
demigod324
4 / 2 / 0
Регистрация: 17.03.2013
Сообщений: 102
#1

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

28.01.2014, 14:02. Просмотров 466. Ответов 6
Метки нет (Все метки)

Подскажите пожалуйста, в каких случаях возникает необходимость в создании своего деструктора?
Я знаю, что деструктор обычно используется, если при уничтожении объекта нужно освободить память, которую занимал объект.
Но возможно есть и другие случаи, возможно более специфические. Если можно, то с примерами)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2014, 14:02     В каких случаях возникает необходимость в создании своего деструктора?
Посмотрите здесь:

C++ В каких случаях Вы используете экспорт шаблонов и для чего?
C++ <iostream> в каких случаях используется?
C++ Так в каких случаях стоит использовать наследование?
C++ При вызове деструктора возникает ошибка Debug Assertion Failed!
В каких случаях классы в С++ подключаются с явным указанием папки? C++
C++ В каких случаях оправданно использование локальных классов?
В каких случаях необходимо включать include string C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,994
28.01.2014, 14:04     В каких случаях возникает необходимость в создании своего деструктора? #2
насколько я знаю, свой "глубокий" деструтор нужен только если в объекте применялось динамическое выделение памяти
gray_fox
What a waste!
 Аватар для gray_fox
1253 / 1136 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
28.01.2014, 14:10     В каких случаях возникает необходимость в создании своего деструктора? #3
Цитата Сообщение от demigod324 Посмотреть сообщение
Я знаю, что деструктор обычно используется, если при уничтожении объекта нужно освободить память, которую занимал объект.
Не только память, любые ресурсы (закрыть файлы например). Вообще в теле деструктора может быть любой код по сути (только исключения оттуда бросать не стоит), что там должно быть уже зависит...
ValeryS
Модератор
6451 / 4917 / 451
Регистрация: 14.02.2011
Сообщений: 16,313
28.01.2014, 14:15     В каких случаях возникает необходимость в создании своего деструктора? #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от demigod324 Посмотреть сообщение
Подскажите пожалуйста, в каких случаях возникает необходимость в создании своего деструктора?
да стопятсот случаев
освободить память
закрыть файлы
сохранить значения
вывести на экран
.....................

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

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

Не по теме:

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

dzrkot
28.01.2014, 14:17
  #5

Не по теме:

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

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

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

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

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

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