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

Восстановление типа исключения через ссылку - C++

Восстановить пароль Регистрация
 
_mayor
1 / 1 / 0
Регистрация: 29.08.2009
Сообщений: 63
11.09.2009, 21:16     Восстановление типа исключения через ссылку #1
[c++] востановление типа исключения через ссылку

не совсем понимаю, что за объект создается в catch при ловле базового исключения:
C++
1
2
3
4
5
6
7
8
9
10
struct err { ... };
struct err_1 : public err { ... };
 
void f() try {
throw err_1();
}
catch (err& e) {
// является ли e обрезанным объектом от err_1 с типом err
// или виртуальная функция будет иметь доступ к данным определенным в err_1 ?
}
допустим для подсистемы ss1 создана иерархия исключений от struct ss1_err и набор функций типа
C++
1
void g() throw(ss1_err,exception);
затем пришлось перенести часть этих функций в подсистему ss2 со своей иерархией исключений ss2_err и переписывание системы фукний из ss1 не опция

как и с какой точностью обычно можно востановить обработку исключений унаследованных от ss2_er, если они проскальзывают через функцию типа:
C++
1
void g() throw(ss1_err,exception); // ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2009, 21:16     Восстановление типа исключения через ссылку
Посмотрите здесь:

Visual C++ Подскажите ссылку к классу для работы с файлами /типа class CFiles в MFC /
Модификация объекта string через ссылку и указатель C++
C++ Сохранение и восстановление данных типа CObject
C++ доступ к приватному члену через нестатическую ссылку
Проверка треугольника через исключения C++
C++ Проверка треугольника через исключения
Задать функцию которая возвращает частное деление двух чисел (обработка ошибок - через исключения) C++
Пишем исключения для каждого типа данных, или можно использовать шаблон? C++
C++ Конвертация wchar_t в число целого типа. Обработка исключения
Изменение информации в дочернем классе, через ссылку C++
Сортировка через ссылку на (указатель на указатели) C++
C++ Возвращение двух значений через ссылку и return

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.09.2009, 22:11     Восстановление типа исключения через ссылку #2
Цитата Сообщение от _mayor Посмотреть сообщение
// является ли e обрезанным объектом от err_1 с типом err
он срезан в том смысле, что нельзя обратиться к его уникальным функциям-членам, которых не было в базовом классе, без явного приведение типа с помощью dynamic_cast
Цитата Сообщение от _mayor Посмотреть сообщение
// или виртуальная функция будет иметь доступ к данным определенным в err_1
виртуальная функция, будь она определена в err и переопределена в err_1, будет иметь свою силу и при вызове вирт.функции базового класса будет вызвана та версия функции, какого типа являлся объект. т.е. в этом плане "обрезания" не будет.
Yandex
Объявления
11.09.2009, 22:11     Восстановление типа исключения через ссылку
Ответ Создать тему
Опции темы

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