Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Метод сортировки Шелла и Выбора - реализация и сравнение https://www.cyberforum.ru/ cpp-beginners/ thread1657165.html
Доброго времени суток. Задание тут одно, просто по пунктам. 1. Написать программу реализации методом Выбора 2. Написать программу методом Шелла 3. Сгенерировать три массива (10, 100, 1000)...
Realloc выделяет память для массива int и не выделяет память для массива double C++
Скажите пожалуйста, почему вот этот код работает: #include <iostream> #include <windows.h> using namespace std; int main() { setlocale(LC_ALL,"Russian");
Перед элементом массива с номером K вставить M новых элементов с нулевыми значениями C++
Помогите пожалуйста, другу нужна помощь, а мне делать лень. Array104. Дан массив размера N и два целых числа K и M (1 ≤ K ≤ N, 1 ≤ M ≤ 10). Перед элементом массива с номером K...
C++ Возвести в квадрат все его локальные минимумы Помогите пожалуйста, другу нужна помощь, а мне делать лень. Array77. Дан массив размера N. Возвести в квадрат все его локальные минимумы (то есть числа, меньшие своих соседей). https://www.cyberforum.ru/ cpp-beginners/ thread1657152.html
C++ Найти количество инверсий в данной перестановке заданного массива https://www.cyberforum.ru/ cpp-beginners/ thread1657151.html
Помогите пожалуйста, другу нужна помощь, а мне делать лень. Array50. Дан целочисленный массив A размера N, являющийся перестановкой (определение перестановки дано в задании Array49). Найти...
C++ Найти среднее арифметическое всех элементов массива, кроме элементов удовлетворяющих условию
Помогите пожалуйста, другу нужна помощь, а мне делать лень. Array23. Дан массив размера N и целые числа K и L (1 < K ≤ L ≤ N). Найти среднее арифметическое всех элементов массива, кроме элементов с...
Open Watcom нет перегрузки для оператора ввода для типа std::string C++
Решил использовать компилятор Open Watcom C++ и в результате не компилируется проект. Проект прилагается
C++ Даны значения температуры воздуха 1. Даны значения температуры воздуха по Цельсию ежечасно в течение суток (вещественные значения генерируются случайно в динамический массив в зависимсоти от времени года в следующих промежутках: лето... https://www.cyberforum.ru/ cpp-beginners/ thread1657126.html
C++ Для введенной с клавиатуры строки найти энтропию https://www.cyberforum.ru/ cpp-beginners/ thread1657125.html
1. Для введенной с клавиатуры строки найти энтропию. Энтропия вычисляется по формуле , гле Pi – вероятность встретить i-ую букву. Пример. Дана строка – «мама мыла раму». Количество букв, включая...
C++ Зашифровать и расшифровать строку 6. Зашифровать и расшифровать введенную с клавиатуры строку, используя добавление к коду каждого символа целой фиксированной величины k. Протестировать программу с k = 250. https://www.cyberforum.ru/ cpp-beginners/ thread1657122.html
Эксперт С++
8274 / 3850 / 837
Регистрация: 15.11.2014
Сообщений: 8,726
07.02.2016, 19:58 0

Определить обработчик исключений на преобразование указателя базового класса на указатель производного класса

07.02.2016, 19:58. Просмотров 977. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено VaMpIr_DEX как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <typeinfo>
 
 
// Класс В является производным от класса А. 
// Определить обработчик исключительной ситуации на преобразование указателя базового класса А 
// на указатель производного класса В.
 
int main()
{
    struct A { virtual ~A(){} };
    struct B: A {};
    struct C: A {};
    
    std::cout << "Hello, world!\n";
    
    try{
        
        A* p = new C;  //<--- создаем С
        
        
        B& b = dynamic_cast<B&>(*p); // а кастим к B
        // каст не правомерный 
        // потому что нельзя кастить к B,
        // если по факту там C        
    }
    catch(std::bad_cast& e)
    {
        // сработает защита времени выполнения
        // и мы сможем узнать причины
        std::cerr << e.what()<<std::endl;
    }
}


Вернуться к обсуждению:
Определить обработчик исключений на преобразование указателя базового класса на указатель производного класса
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2016, 19:58

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вызов метода производного класса через обращение к методу базового класса
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp,...

Как сложить объект базового класса с объектом производного(наследуемого класса)
Как умножить объект базового класса с объектом производного(наследуемого класса): ozenka - объект...

Вызвать конструктор производного класса без конструктора базового класса
Здравствуйте! У меня есть базовый класс треугольник и производный класс равносторонний...

Что происходит когда передается в функцию базового класса аргумент с типом производного класса?
Есть функция перегруженного оператора&quot;+&quot; в производном классе и в базовом классе который принимает...

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