20 / 19 / 1
Регистрация: 13.08.2012
Сообщений: 779
1

Деструктор класса

06.12.2013, 09:14. Показов 685. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется собственный класс, возник вопрос, деструктор класса вызывается не явно ? если так, то в какой момент он вызывается ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2013, 09:14
Ответы с готовыми решениями:

Деструктор класса
когда мы вызываем деструктор, для удаления динамического массива к примеру, нужно ли в нем каким...

Деструктор класса
struct date//Структура даты рождения { int d, m, y; }; struct students//Структура студента {...

деструктор класса
Здравствуйте! Я скопировал код отсюда https://msdn.microsoft.com/ru-ru/library/6t4fe76c.aspx...

Деструктор класса список
Доброго времени суток. Создал класс односвязный список. Не знаю как сделать деструктор таким, чтобы...

8
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
06.12.2013, 09:18 2
Цитата Сообщение от NEvOl Посмотреть сообщение
деструктор класса вызывается не явно ?
Когда он не вызывается явно.
Цитата Сообщение от NEvOl Посмотреть сообщение
в какой момент он вызывается ?
Когда он больше не используется. Например, когда выходит из области видимости.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,517
06.12.2013, 09:25 3
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Когда он больше не используется.
Деструктор?
перечитай свою фразу в контексте с вопросом
правильней сказать деструктор вызывается когда разрушается объект
выход за пределы видимости
окончание функции (можно объединить с первым )
при вызове delete

Добавлено через 1 минуту
NEvOl,
для изучения таких вопросов рекомендую написать в деструкторе что то типа
C++
1
cout<<"destructor"<<this;
1
20 / 19 / 1
Регистрация: 13.08.2012
Сообщений: 779
06.12.2013, 09:31  [ТС] 4
имеется ввиду деструктор вызывается когда "заканчивается работа с классом" ?
0
Модератор
Эксперт С++
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,702
06.12.2013, 09:35 5
Цитата Сообщение от NEvOl Посмотреть сообщение
когда "заканчивается работа с классом" ?
Это некорректно.
Правильно написал ValeryS,
Цитата Сообщение от ValeryS Посмотреть сообщение
правильней сказать
"деструктор вызывается когда разрушается объект"
1.выход за пределы видимости
2.окончание функции (можно объединить с первым )
3.при вызове delete
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
06.12.2013, 09:37 6

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
перечитай свою фразу в контексте с вопросом
:)


Цитата Сообщение от NEvOl Посмотреть сообщение
имеется ввиду деструктор вызывается когда "заканчивается работа с классом" ?
Не совсем так. Если к примеру класс рисует на экране синий круг в начале работы программы, а потом скрывает или рисует его же только по запросу пользователя, то отрисовав первый раз он может больше никогда и не потребоваться. То есть работа с классом закончена, но деструктор не вызван.
0
20 / 19 / 1
Регистрация: 13.08.2012
Сообщений: 779
06.12.2013, 09:42  [ТС] 7
хорошо, окончание функции имеется ввиду главной ?
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
06.12.2013, 09:55 8
NEvOl, да.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,517
06.12.2013, 10:05 9
Цитата Сообщение от NEvOl Посмотреть сообщение
хорошо, окончание функции имеется ввиду главной ?
необязательно
если объект расположен в стеке то любой функции
несколько примеров
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int fnc()
{
 classA  A;
}// здесь вызовется деструктор для A, выход из fnc
 
classA  B;
classA*  D;
int main()
{
 classA C;
D=new classA;
 fnc();
delete D;// здесь вызовется деструктор для D
}//здесь вызовется деструктор для  C, выход из main
//а здесь по окончании работы всей программы деструктор для  B
1
06.12.2013, 10:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2013, 10:05
Помогаю со студенческими работами здесь

Деструктор класса-наследника
Имеется класс Polinom, у которого в private полях степень n полинома и массив koef коэффициентов....

Деструктор абстрактного класса
Почему деструктор абстрактного класса нужно делать виртуальным?

Конструктор и деструктор анонимного класса
Здравствуйте. Есть ли в С++ такая возможность? Очень нужна именно такая реализация класса, но если...

Не срабатывает деструктор и дочернего класса
Собственно, такие дела. Использую наследование, несколько цепочек одного от другого 1-&gt;2-&gt;3-&gt;.......


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru