Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
RuAlastor
0 / 0 / 0
Регистрация: 16.10.2018
Сообщений: 1
1

Как правильно использовать деструктор исключений в наследующих классах?

14.11.2018, 14:10. Просмотров 312. Ответов 1

Ни разу не видел использования деструктора класса std::exception в наследующем классе.
Будет ли считаться "плохим тоном" его использование для удаления динамических массивов/очистки памяти?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2018, 14:10
Ответы с готовыми решениями:

Как правильно использовать деструктор? Он слишком рано срабатывает
#include "stdafx.h" #include <iostream> using namespace std; class MyArray { int...

Как правильно использовать operator= при наследовании в полиморфных и неполиморфных классах
Доброго времени суток! Изучаю книгу С. Прата "Язык программирования C++. Лекции и упражнения."...

Может кто подсказать, правильно ли так использовать деструктор?
#include "stdafx.h" #include"iostream" using namespace std; template <class T> class...

как использовать число во всех классах
ввести x в классе A,а потом изменять этот икс в других классах? что то типо того class A{...

Обработка исключений в классах для пользовательских типов
Здорова господа! Запустил токо класс String тестю и тут у меня вылетело исключение выход за...

1
anapshy
255 / 236 / 199
Регистрация: 14.11.2016
Сообщений: 890
Завершенные тесты: 3
14.11.2018, 18:06 2
Что такое "деструктор"?
Для чего нужен "деструктор"?
Как удаление "динамических массивов/очистка памяти" относится к деструктору std::exception?

Программист сам решает, когда освобождать динамически выделенную память.
Если нужно, чтобы она освобождалась автоматически при удалении объекта, несмотря не на что, то нужно прописать освобождение памяти в деструкторе.

Если выделить память (например char *ptr = new char[512];) и бросить исключение, то произойдет утечка памяти, т.к. ptr вылетит при раскрутке стэка и адрес будет потерян. А если например std::list взять (деструктор освобождает память при удалении) и бросить исключение, то при раскрутке стэка сработает деструктор, который освободит выделенную память внутри объекта класса std::list и утечки уже не будет.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2018, 18:06

Как использовать один и тот же объект в разных классах?
Подскажите, пожалуйста, как получить доступ к функции через объект. Второй день бьюсь, хотя...

Подскажите как правильно добавить виртуальный деструктор
Доброго времени суток Подскажите пожалуйста, как правильно добавить виртуальный деструктор в...

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


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

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

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