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

Обработки исключительных ситуаций - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Списки (вывод) http://www.cyberforum.ru/cpp-beginners/thread521528.html
извините за тупой вопрос, не могли бы вы подсказать как выводить элементы списка? struct tElem { int value; tElem *next; }; сама структура а вывожу я вот так void main() {
C++ Чисто виртуальные классы. Модификатор const Приветствую всех! Известно, что чисто виртуальный (абстрактный) класс можно получить class A { public: virtual void test()=0; }; На просторах рунета в онлайн-учебнике встретил следующий пример... http://www.cyberforum.ru/cpp-beginners/thread521526.html
C++ Создать структуру с именем Sotrudnik
Добрый день. Не знаю как сделать задачу. Помогите кто чем может. Создать структуру с именем Sotrudnik с полями: фамилия, имя, должность, год поступления на работу. Сформировать двусвязный список....
C++ Инвертирование группы бит.
Помогите с программой, пожалуйста. Дана переменная типа long. Написать функцию, которая инвертирует группу из N разрядов переменной, начиная с разряда с номером P (где N и P - целые положительные...
C++ Определить, сколько в текстовом файле слов, состоящих не более чем из четырех букв http://www.cyberforum.ru/cpp-beginners/thread521500.html
Помогите написать программу, которая считывает текст из файла и определяет, сколько в нем слов, состоящих из не более чем четырех букв. Только в функции. Буду очень благодарен.
C++ Вычислить математическое ожидание, дисперсию и среднеквадратичное отклонение случайной величины Пусть массив X(N) - массив возможных значений некоторых случайных величин. Составить подпрограмму, которая вычисляет математическое ожидание (Mx), дисперсию (Dx) и среднеквадратичное отклонение (Fx)... подробнее

Показать сообщение отдельно
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
18.03.2012, 16:55
нужно знать для чего нужен dynamic_cast и его особенности.
если кратно, то он позволяет кастить указатель на базу в указатель на производный тип с проверкой.
если каст невозможен, результат каста будет нулевой указатель. тоже самое можно делать с сылками. но так как нулевых ссылок не бывает, в этом случае при невозможности преобразования кидается стандартное исключение std::bad_cast которое и нужно обрабатывать.

ну т.е. в коде это выглядит как-то так:

C++
1
2
3
4
5
6
7
8
9
 // baseRef - ссылка на базу
 try
 {
    Der& der = dynamic_cast<Der&>(baseRef);
 }
 catch (const std::bad_cast& error)
 {
    std::cout << error.what() << std::endl;
 }
Кстати преобразование ссылки на производный класс в ссылку на базовый класс происходит без всяких исключений. Это преобразование либо отрабатывает, либо программа просто не скомпилируется (если конечно это делать без всяких хаков).
Исключения могут быть при преобразовании из базового класса в производные. Т.е. у вас задание какое-то кривое.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru