Форум программистов, компьютерный форум 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; }; На просторах рунета в онлайн-учебнике встретил следующий пример абстрактного класса: class A { public: virtual void test()const=0; };И получается так, что я ничего даже с его наследниками не могу сделать. Попытка инстанцировать наследника пресекается... http://www.cyberforum.ru/cpp-beginners/thread521526.html
C++ Создать структуру с именем Sotrudnik
Добрый день. Не знаю как сделать задачу. Помогите кто чем может. Создать структуру с именем Sotrudnik с полями: фамилия, имя, должность, год поступления на работу. Сформировать двусвязный список. Удалить из списка тех сотрудников, кто работает менее 3-х лет. Вывести измененный список. Структуру создать, создал, а вот как дальше не знаю
C++ Инвертирование группы бит.
Помогите с программой, пожалуйста. Дана переменная типа long. Написать функцию, которая инвертирует группу из N разрядов переменной, начиная с разряда с номером P (где N и P - целые положительные числа, а нумерация разрядов числа начинается с нуля). Запрещается использование дополнительных переменных. В программе обеспечить ввод исходных данных.
C++ Определить, сколько в текстовом файле слов, состоящих не более чем из четырех букв http://www.cyberforum.ru/cpp-beginners/thread521500.html
Помогите написать программу, которая считывает текст из файла и определяет, сколько в нем слов, состоящих из не более чем четырех букв. Только в функции. Буду очень благодарен.
C++ Вычислить математическое ожидание, дисперсию и среднеквадратичное отклонение случайной величины Пусть массив X(N) - массив возможных значений некоторых случайных величин. Составить подпрограмму, которая вычисляет математическое ожидание (Mx), дисперсию (Dx) и среднеквадратичное отклонение (Fx) случайной величины X. M_x= \frac{\sum \limits_{i=1}^{N} X_i}{N} \qquad D_x=\frac{\sum \limits_{i=1}^{N} (X_i-M_x)^2}{N} \qquad F_x=\sqrt{D_x} Для передачи имени массива в подпрограмму ... подробнее

Показать сообщение отдельно
DU
1480 / 1056 / 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;
 }
Кстати преобразование ссылки на производный класс в ссылку на базовый класс происходит без всяких исключений. Это преобразование либо отрабатывает, либо программа просто не скомпилируется (если конечно это делать без всяких хаков).
Исключения могут быть при преобразовании из базового класса в производные. Т.е. у вас задание какое-то кривое.
 
Текущее время: 03:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru