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

Работает ли указатель на базовый класс исключения, когда попадает в блок catch - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Алгоритм поиска Эйлерового пути, не используя матрицу смежности или инцидентности http://www.cyberforum.ru/cpp-beginners/thread1238944.html
Есть граф с множеством вершын Х = { 1, 2, 3, 4, 5} формула |x1 - x2| = 1 то есть если модуль разницы двух вершин 1, то они смежны Пример |1-2| = 1 - вершыны 1 и 2 смежны, |3-5| = 2 -...
C++ Чтение/запись в файл с использованием многопоточности Доброго времени суток! Хочу решить следующую задачу: Есть большой бинарный файл (несколько гигабайт к примеру). Нужно разбить этот файл на части и записать в другой файл хэши этих частей,... http://www.cyberforum.ru/cpp-beginners/thread1238938.html
C++ Скиньте литературу по спискам в C++
Скиньте литературу по спискам в С++, НО которая расчитана на полного чайника (т.е. где все будет до мелчайших подробностей расписано). Может кто учился по такой, может знает.
Как создать фигуры для тетриса? C++
Привет всем! Захотел написать простенькую игру и решил начать с тетриса. Пишу в visual studio 2013 c++. Как и всегда появляются проблемы: Нарисовал текстурки для фигур, но я не знаю как из текстур...
C++ Указатель на не объявленную структуру http://www.cyberforum.ru/cpp-beginners/thread1238862.html
Допустим я описал структуру. Объявил указатель на эту структуру. struct MyStruct{ char ch; int i; }; std::cout<<sizeof(MyStruct); MyStruct * pMyStruct; Из за выравнивания размер...
C++ Если память для объекта выделяется динамически (строка 33), сортировка sort не работает Если память для объекта выделяется динамически (строка 33), сортировка sort не работает, если память не выделять, все работает. Как избежать проблему? #include <iostream> #include <list>... подробнее

Показать сообщение отдельно
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
06.08.2014, 06:56
Gwini, g++ это даже не скомпилировал:
Код
In file included from error4.cpp:4:0:
exc_mean.h:12:13: error: looser throw specifier for ‘virtual base_excep::~base_excep()’
     virtual ~base_excep() {}
             ^
In file included from exc_mean.h:3:0,
                 from error4.cpp:4:
/usr/include/c++/4.8/stdexcept:64:13: error:   overriding ‘virtual std::logic_error::~logic_error() throw ()’
     virtual ~logic_error() _GLIBCXX_USE_NOEXCEPT;
             ^
error4.cpp: In function ‘double hmean(double, double)’:
error4.cpp:42:29: error: taking address of temporary [-fpermissive]
         throw &bad_hmean(a,b);
                             ^
error4.cpp: In function ‘double gmean(double, double)’:
error4.cpp:49:29: error: taking address of temporary [-fpermissive]
         throw &bad_gmean(a,b);
Плюс вы нарушаете правило «используй только константные ссылки для исключений». Если бы вы бросили исключение через new — это ещё ладно, хотя тоже плохо. Но вы используете ссылку на локальный объект, т.е. объект на стеке. При обработке исключения стек раскручивается, локальные объекты уничтожаются — т.е. даже если бы ваш код скомпилировался, вы получите указатель на мусор.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru