![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Jcs |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 1.10.2003 Репутация: нет Всего: нет |
В каких случаях dynamic_cast генерит исключения? Может быть, кроме наличия виртуальных функций есть еще какие необходимые требования?
|
|||
|
||||
Jcs |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 1.10.2003 Репутация: нет Всего: нет |
Все нормально работает, просто забыл поддержку rtti включить
|
|||
|
||||
Jcs |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 1.10.2003 Репутация: нет Всего: нет |
Опять ошибся... Щас генерится bad_cast, в прошлом случае было "non rtti-types" или чего-то в этом роде. Если же ссылки заменить на указатели, то никаких исключений не генерится. Может быть для ссылок и указателей используетс я разная семантика?
|
|||
|
||||
Waters |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 16.11.2003 Репутация: нет Всего: нет |
Да, в случае ссылок dynamic_cast сам проверяет результат преобразования и в случае неудачи выбрасывает исключение bad_cast. Оно и понятно - ведь ссылка не может быть невалидной. В случае каста к указателю этого нет. Если интересуют подробности - глава 15.4.1.1 (это по специальному изданию). wbr. Это сообщение отредактировал(а) Waters - 27.1.2004, 20:24 |
|||
|
||||
Jcs |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 1.10.2003 Репутация: нет Всего: нет |
Спасибо, в случае указательного каста возвращается нулевой указатель, если объект для преобразования не был создан как базовый. Толстый, однако, этот dynamic_cast, к typeinfo долбится, исключения генерит..
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |