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

Как в функции my_function преобразовать ссылку на базовый класс в ссылку на класс B или С - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выбор кафедры в дальнейшей жизни: прикладное программирование VS системное программирование http://www.cyberforum.ru/cpp-beginners/thread1227819.html
Сразу извиняюсь что очень не по теме но всё же лучшего форума для этого вопроса я не нашел. Итак я вступаю во взрослую жизнь и давно определился с выбором факультета, но вот есть кафедры которые меня...
C++ Найти длину отрезка. Определить, в каких квадрантах координатной плоскости лежат его концы Помогите написать программу Задача Отрезок задан координатами концов. Вычислить его длину. Определить, в каких четвертях (квадрантах) координатной плоскости лежат его концы. Нужно написать... http://www.cyberforum.ru/cpp-beginners/thread1227814.html
C++ Перевод температуры с одной шкалы в другую
Варианты 3, 6 Проверить работоспособность программы работы конвертера температур, написанной на C++. При написании конвертера использовались формулы пересчета величин: Пересчёт температуры между...
Конвертор из wchar_t to string. Ошибка косвенного обращения. C++
Вот код, Ошибки: Ошибка 3 error C2040: temp: "std::string" отличается по уровням косвенного обращения от "wchar_t *" c:\users\admin\documents\visual studio...
C++ Отсортировать массив А (10) по возрастанию не считая первый и последний элементы http://www.cyberforum.ru/cpp-beginners/thread1227777.html
Всем привет,здесь на форуме мне написали просто идеальной код,он работает,но немного его нужно отредактировать Задание: Отсортировать массив А (10) по возрастанию не считая первый и последний...
C++ Ошибка: Нарушение прав доступа при чтении Всем привет, решил в проект добавить функцию элементарную void MyClass::mouseMove() { LPPOINT cursorPos; for(;;) { GetCursorPos(cursorPos); if(cursorPos->x < 1000){ подробнее

Показать сообщение отдельно
olper
24 / 24 / 11
Регистрация: 02.12.2013
Сообщений: 75
15.07.2014, 20:43
C++
1
B &b = dynamic_cast<B&>(obj)
но лучше
C++
1
2
3
4
5
6
void funB(A *a)
{
    B *b= dynamic_cast<B*>(a);
    if (!b) return;
    std::cout<<" B-object's been detected"<<std::endl;
}
при неудачном кастинге к ссылке будет сгенерировано исключение и его надо обработать как-нить,
а с указателем - проверить на ноль.(вроде проще)

и еще в класс "A" надо добавить какую-нибудь виртуальную функцию
C++
1
struct A{virtual void stub(){}};
для примера
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru