![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Tony |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Доброго всем времени суток.
Имеется такой код: class CBase т.е. есть некий базовый абстрактный класс, у которого много наследников. Далее происходит вот что: CBase *pBase = new CDerv1; Вопрос : очевидно, например с помощью typeid мы можем узнать тип объекта, на который на самом деле указывает pBase. Существует ли простой способ автоматически преобразовать pBase из типа CBase* в тип того объекта, на который он на самом деле указывает (в данном случае в CDerv1*)? |
![]() ![]() |
Tony |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да, ваш вопрос логичен. Но это видимо из-за того, что я слишком все упростил)
На самом деле функция f принимает два указателя (т.е. к примеру f(CDerv1*, CDerv2*)), т.е. она реализует попарное взаимодействие между объектами. Просто в данном случае получается так, что нельзя вытащить нужные данные объекта с помощью виртуальных функций(эти свойства слишком разные), а нужен просто сам объект; но опять-таки нельзя уйти и от виртуальных функций, так как без них все бы сильно усложнилось. Мне почему-то казалось, что возможность такого приведения типов должна быть реализована в языке, и я просто о ней не знаю.. Сообщение отредактировано: Tony - 10.08.2010 16:23 |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 14:58 |