![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
я знаю, просто в этой теме шла речь об эмуляции rtti средствами языка. |
|||
|
||||
| UnrealMan |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Но это ещё не всё. С помощью typeid можно сравнивать типы только most derived-объектов, а dynamic_cast успешно отработает и для промежуточных базовых классов:
Ещё dynamic_cast способен одним махом произвести такое преобразование:
а static_cast пришлось бы применить два раза. |
||||||
|
|||||||
| Vyacheslav |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Вы меня положительно за идиота держите Посмотрите еще раз постановку. Есть коллекция объектов производных классов, которые выступают как указатели на базовый класс A. Нужно выполнить определенные операции над объектами только тех классов, которые являются производными класса D, то есть над объектами E; J; H; K. При использовании dynamic_cast это решается одной строчкой
При использовании typeid тупо просматривается примерно следущее
Может конечно можно еще как то задействовать type_info::before( const type_info &rhs ) const , но проще всетаки dynamic_cast. И кстати, а разве typeid для использования динамического типа не использует тот же RTTI? -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
оффтоп
хоть кто-то "на моей стороне" |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |