Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

В каких случаях нужно создавать динамические переменные, а в каких статические? - C++
такой же вопрос и по массивам ! Объясните пожалуйста !

Объясните в каких случаях используеться char, а в каких string? - C++
Зачем(в каких случаях) использовать char, и char *... Зачем(в каких случаях) использовать string...

При вызове деструктора возникает ошибка Debug Assertion Failed! - C++
вот код программы #include <iostream> #include <conio.h> using namespace std; class String { private:

<iostream> в каких случаях используется? - C++
Что такое &lt;iostream&gt; расскажите о нем, для чего он используется.

В каких случаях требуется работа с памятью? - C++
Приветствую всех. Интересует такой вопрос. Я знаком с основами C++. Но я читал где-то, что если разрабатывается большой проект, то работы...

Static обьект, в каких случаях применяется? - C++
Всем доброго дня ! Скажите пожалуйста в каком случае применяются статические обьекты.? class A { int x;

6
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,036
28.01.2014, 14:04 #2
насколько я знаю, свой "глубокий" деструтор нужен только если в объекте применялось динамическое выделение памяти
1
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
28.01.2014, 14:10 #3
Цитата Сообщение от demigod324 Посмотреть сообщение
Я знаю, что деструктор обычно используется, если при уничтожении объекта нужно освободить память, которую занимал объект.
Не только память, любые ресурсы (закрыть файлы например). Вообще в теле деструктора может быть любой код по сути (только исключения оттуда бросать не стоит), что там должно быть уже зависит...
2
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,240
28.01.2014, 14:15 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от demigod324 Посмотреть сообщение
Подскажите пожалуйста, в каких случаях возникает необходимость в создании своего деструктора?
да стопятсот случаев
освободить память
закрыть файлы
сохранить значения
вывести на экран
.....................

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

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

Не по теме:

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

2
dzrkot
28.01.2014, 14:17
  #5

Не по теме:

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

0
stima
491 / 341 / 40
Регистрация: 22.03.2011
Сообщений: 1,102
Завершенные тесты: 2
28.01.2014, 14:28 #6
для реализации идиомы RAII
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
28.01.2014, 14:43 #7
1. Если класс непосредственно управляет выделением ресурса в конструкторе, то требуется деструктор (а еще и копирующий/перемещающий конструктор, оператор присваивания), в котором этот ресурс будет освобождаться.
2. Если ресурс захватывается косвенно, например другим классом, который является членом текущего, то деструктор (и пр.) не нужны, т.к. см. п.1.
1
28.01.2014, 14:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2014, 14:43
Привет! Вот еще темы с ответами:

В каких случаях целесообразно динамическое выделение памяти? - C++
Здравствуйте, у меня назрел вот такой вот вопросик: Как я понимаю динамические переменные и массивы создаются с целью устранить утечки...

В каких случаях оправданно использование локальных классов? - C++
Здравствуйте. Вопрос: в каких случаях оправданно использование локальных классов? Или когда нужно использовать локальные классы? Какие есть...

Так в каких случаях стоит использовать наследование? - C++
Здравствуйте, уважаемое сообщество. После прочтения &quot;C++ Coding Standards&quot; by Herb Sutter and Andrei Alexandrescu, возникли некоторые...

В каких случаях необходимо включать include string - C++
В каких случаях необходимо использовать инструкцию препроцессора #include &lt;string&gt;? Раньше я думал, что это необходимо всякий раз, как я...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.