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

Деструкторы и исключения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Восходящее и нисходящее преобразование (Upcasting and Downcasting) http://www.cyberforum.ru/cpp-beginners/thread653894.html
Посоветуйте литературу по данному вопросу в разрезе С++ ну или простыми словами что это, для чего нужно заранее спасибо
C++ cygwin1.dll не хватает библиотеки всем привет интересно узнать, как можно "подключить" или "вшить" данную библиотеку в программу, чтобы программа не требовала этой библиотеки на компьютере на котором нету этой библиотеки.... http://www.cyberforum.ru/cpp-beginners/thread653891.html
мигающий курсор C++
В CODEBLOCS в окне набора текста программы появился мигающий курсор "_", а раньше был курсор "|". И редактирование текста поменялось. Теперь в строчке нельзя между символами вставить другой символ,...
Вызов перегрузки базового класса C++
Начитавшись c# забыл кое-что по с++, никак теперь не могу вспомнить как вызвать перегрузку базового класса в перегрузке наследника. Есть что-то типа: class Foo { public: const Foo&...
C++ Запутанный код на С++ http://www.cyberforum.ru/cpp-beginners/thread653806.html
Здравствуйте уважаемые программисты!Помогите,пожалуйста разобрать запутанный с++ код. #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <iostream> using...
C++ Определить какая из точек ближе всего лежит к началу координат Помогите решить задачи. 1)Заданы 3 точки р1(х1,у1),р2(х2,у2),р3(х3,у3).Определить какая из точек ближе всего лежит к началу координаты. 2)Спортсмен в первый день пробежал 2 км.Каждый... подробнее

Показать сообщение отдельно
PSIAlt
87 / 87 / 8
Регистрация: 19.06.2012
Сообщений: 245
18.09.2012, 22:30
Кроме того, экзепшн внутри деструктора может привести к неопределенному поведению кучи других обьектов. Допустим в функции
C++
1
2
3
Foo f[10];
// Тут чета происходит
return;
Вот в момент ретюрна обьекты начинают уничтожаться. Допустим один из них кидает исключение. Что дальше делать? Половина уже уничтожена, один в неизвестном состоянии кишками наружу, оставшая часть еще не уничтожена. Выйти из функции до ближайшего try-catch? Но тогда мы должны уничтожить все оставшиеся в scope обьекты. А если они тоже кинут исключение? С++ не умеет обрабатывать 2 исключения одновременно. Короче, есть договоренность что деструкторы всегда должны быть exception-safe
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.