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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выбор кафедры в дальнейшей жизни: прикладное программирование VS системное программирование http://www.cyberforum.ru/cpp-beginners/thread1227819.html
Сразу извиняюсь что очень не по теме но всё же лучшего форума для этого вопроса я не нашел. Итак я вступаю во взрослую жизнь и давно определился с выбором факультета, но вот есть кафедры которые меня интересуют и их 2. Лично я люблю изучать методы программирования, новые возможности, сам пишу на С++, поэтому пишу в этом разделе. Живу в Украине. Ребят помогите пожалуйста, сам я не сильно могу...
C++ Найти длину отрезка. Определить, в каких квадрантах координатной плоскости лежат его концы Помогите написать программу Задача Отрезок задан координатами концов. Вычислить его длину. Определить, в каких четвертях (квадрантах) координатной плоскости лежат его концы. Нужно написать программу на языке си, (Разветвляющиеся алгоритмы) задача орентированна на условного оператора http://www.cyberforum.ru/cpp-beginners/thread1227814.html
C++ Перевод температуры с одной шкалы в другую
Варианты 3, 6 Проверить работоспособность программы работы конвертера температур, написанной на C++. При написании конвертера использовались формулы пересчета величин: Пересчёт температуры между основными шкалами Кельвин Цельсий Фаренгейт Кельвин (K) = K = С + 273,15 = (F + 459,67) / 1,8 Цельсий (°C) = K − 273,15 = C = (F − 32) / 1,8 Фаренгейт (°F) = K • 1,8 − 459,67 = C • 1,8 + 32 = F...
Конвертор из wchar_t to string. Ошибка косвенного обращения. C++
Вот код, Ошибки: Ошибка 3 error C2040: temp: "std::string" отличается по уровням косвенного обращения от "wchar_t *" c:\users\admin\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\var.h 1329 1 ConsoleApplication1 ругается короче на return temp; почему так и как исправить? Var::operator string () { if(this->num !=INT_MIN){
C++ Отсортировать массив А (10) по возрастанию не считая первый и последний элементы http://www.cyberforum.ru/cpp-beginners/thread1227777.html
Всем привет,здесь на форуме мне написали просто идеальной код,он работает,но немного его нужно отредактировать Задание: Отсортировать массив А (10) по возрастанию не считая первый и последний элементы массива. Код: #include <stdio.h> #include <stdlib.h> size_t n = 0; long *arr = NULL;
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     Как в функции my_function преобразовать ссылку на базовый класс в ссылку на класс B или С
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(){}};
для примера
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru