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

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

Войти
Регистрация
Восстановить пароль
 
NEvOl
19 / 18 / 0
Регистрация: 13.08.2012
Сообщений: 726
#1

Деструктор класса - C++

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

Имеется собственный класс, возник вопрос, деструктор класса вызывается не явно ? если так, то в какой момент он вызывается ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 09:14     Деструктор класса
Посмотрите здесь:

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

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

Динамический объект класса и деструктор - C++
Добрый вечер. Есть класс, конструктор и деструктор: class B { int a; public: B (); ~B (); };

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

Не срабатывает деструктор и дочернего класса - C++
Собственно, такие дела. Использую наследование, несколько цепочек одного от другого 1->2->3->.... И сегодня неожиданно обнаружил, что у...

Шаблон класса деструктор вызывает ошибку - C++
Не так чего после того как доходит до деструктора выдает такую ошибку #include "stdafx.h" #include <stdio.h> #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
06.12.2013, 09:18     Деструктор класса #2
Цитата Сообщение от NEvOl Посмотреть сообщение
деструктор класса вызывается не явно ?
Когда он не вызывается явно.
Цитата Сообщение от NEvOl Посмотреть сообщение
в какой момент он вызывается ?
Когда он больше не используется. Например, когда выходит из области видимости.
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,722
06.12.2013, 09:25     Деструктор класса #3
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Когда он больше не используется.
Деструктор?
перечитай свою фразу в контексте с вопросом
правильней сказать деструктор вызывается когда разрушается объект
выход за пределы видимости
окончание функции (можно объединить с первым )
при вызове delete

Добавлено через 1 минуту
NEvOl,
для изучения таких вопросов рекомендую написать в деструкторе что то типа
C++
1
cout<<"destructor"<<this;
NEvOl
19 / 18 / 0
Регистрация: 13.08.2012
Сообщений: 726
06.12.2013, 09:31  [ТС]     Деструктор класса #4
имеется ввиду деструктор вызывается когда "заканчивается работа с классом" ?
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,181
Завершенные тесты: 1
06.12.2013, 09:35     Деструктор класса #5
Цитата Сообщение от NEvOl Посмотреть сообщение
когда "заканчивается работа с классом" ?
Это некорректно.
Правильно написал ValeryS,
Цитата Сообщение от ValeryS Посмотреть сообщение
правильней сказать
"деструктор вызывается когда разрушается объект"
1.выход за пределы видимости
2.окончание функции (можно объединить с первым )
3.при вызове delete
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
06.12.2013, 09:37     Деструктор класса #6

Не по теме:

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


Цитата Сообщение от NEvOl Посмотреть сообщение
имеется ввиду деструктор вызывается когда "заканчивается работа с классом" ?
Не совсем так. Если к примеру класс рисует на экране синий круг в начале работы программы, а потом скрывает или рисует его же только по запросу пользователя, то отрисовав первый раз он может больше никогда и не потребоваться. То есть работа с классом закончена, но деструктор не вызван.
NEvOl
19 / 18 / 0
Регистрация: 13.08.2012
Сообщений: 726
06.12.2013, 09:42  [ТС]     Деструктор класса #7
хорошо, окончание функции имеется ввиду главной ?
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
06.12.2013, 09:55     Деструктор класса #8
NEvOl, да.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2013, 10:05     Деструктор класса
Еще ссылки по теме:

Дописать конструктор и деструктор для класса - C++
Помогите пожалуйста написать конструктор копии и деструктор, а также вызвать их, чтобы деструктор выводил на экран &quot;работает&quot; #include...

Написать деструктор для данного класса - C++
Как лучше написать деструктор для класса: class Library{ private: struct books{ char* name; int year; ...

Деструктор уничтожает 3 объекта класса. Почему? - C++
Деструктор уничтожает 3 объекта класса. Не понимаю почему. У меня же 2 объекта используются V и V1. Знающие люди, объясните #include...

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


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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,722
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
Yandex
Объявления
06.12.2013, 10:05     Деструктор класса
Ответ Создать тему
Опции темы

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