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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Gabriel93
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 8
#1

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

18.03.2012, 16:09. Просмотров 555. Ответов 3
Метки нет (Все метки)

Объясните, что от меня хотят, а то уже мозг кипит ...
7. Не абстрактный класс В является производным от абстрактного класса А. Определить обработчик исключительной ситуации при преобразовании ссылки на класс В в ссылку на абстрактный класс.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2012, 16:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработки исключительных ситуаций (C++):

Обработка исключительных ситуаций - C++
Всем доброго времени суток, не понимаю как сделать обработку исключительной ситуации когда при вводе количества строк, вводится не целое, а...

Обработка исключительных ситуаций - C++
Код программы,Что та не робит помогите #include "stdafx.h" #include <iostream> #include<conio.h> using namespace std; int...

Обработка исключительных ситуаций - C++
Помогите сделать обработку исключительных ситуаций вот мой код: #include <iterator> #include "conio.h" #include <iostream> ...

Обработка исключительных ситуаций - C++
Мне нужно было создать шаблонный класс и написать обработку исключающих ситуаций. Вот, что я сделал #pragma once #include <iostream>...

Обработка исключительных ситуаций! - C++
Составьте программу на языке С++. Обрабатывающую исключительную ситуацию, которая может возникнуть в ходе выполнения программы. ...

Обработка исключительных ситуаций - C++
Правильно ли тут я обрабатываю исключения? #pragma once #include <iostream> #include "stdio.h" #include "stdlib.h" #include...

3
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
18.03.2012, 16:55 #2
нужно знать для чего нужен 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
Gabriel93
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 8
18.03.2012, 18:06  [ТС] #3
Спасибо за объяснение.
О RTTI ранее читал, но поскольку мы это не учили в университете, об этом как-то не вспоминал ..,
Кстати преобразование ссылки на производный класс в ссылку на базовый класс происходит без всяких исключений. Это преобразование либо отрабатывает, либо программа просто не скомпилируется (если конечно это делать без всяких хаков).
Этого результата я добился...
Исключения могут быть при преобразовании из базового класса в производные. Т.е. у вас задание какое-то кривое.
Я в курсе и о первом и о втором. К сожалению это уже не первый случай, когда дают плохо сформировано задание.

Тему можно закрывать.
0
iStark
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 10
15.04.2013, 10:23 #4
Ребята, может кого не затруднит написать код программы полностью? В универе задали такое же задание, но вот уровень подготовки куда ниже чем у автора топика, если можна с минимальными комментариями?

Добавлено через 7 часов 58 минут
Буду благодарен хотя бы за краткий пример того, как реализуеться "ссылка на базу" в данном случае...

Добавлено через 20 минут
Спасибо, разобрался сам
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 10:23
Привет! Вот еще темы с ответами:

Обработка исключительных ситуаций - C++
Нужна одна работающая программа из 2. 1) Наберите текст программы приведенного примера обработки исключительных ситуаций и...

Обработка исключительных ситуаций - C++
Доброго времени суток уважаемы программисты и начинающие программисты :) Скажите, почему появляется ошибка на 6й строке? Задача стоит...

Обработка исключительных ситуаций. - C++
Пожалуйста,помогите решить..В субботу экзамен,а я физически не успеваю написать 6 программок..( Написать функцию вычисления...

Обработка исключительных ситуаций - C++
Здравствуйте, друзья. Подскажите, пожалуйста, как можно при помощи try-throw-catch &quot;защититься&quot; от ввода пользователем &quot;не того типа...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
15.04.2013, 10:23
Ответ Создать тему
Опции темы

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