Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.143.9.115] |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
аналогично этому
C* pc = dynamic_cast< C *>( pa ); и вооПче это же логическая ошибка !? |
Сообщ.
#17
,
|
|
|
Цитата Sazabis, 22.01.04, 16:00 аналогично этому C* pc = dynamic_cast< C *>( pa ); и вооПче это же логическая ошибка !? Нет, не аналогично. По той простой причине, что dynamic_cast в этом случае тебе вернет NULL (если кастишь указатели), или выбросит исключение bad_cast, если кастишь ссылки. На счет логической ошибки. В приведенном примере - да. А предположим, что ты передаешь pa в метод, где это pa кастится до одного из потомков? Там такая ошибка не столь очевидна. |
Сообщ.
#18
,
|
|
|
ну теперь, вообще, почти все понятно B)
А если взять отдельный класс, внутри его методов я как его разработчик, обязуюсь отследить все неровности и шероховатости. Не использование dynamic_cast внутри этих методов позволит мне кое в чем выграть. Есть ли в этом грубая ошибка ? |
Сообщ.
#19
,
|
|
|
Цитата Sazabis, 22.01.04, 16:45 А если взять отдельный класс, внутри его методов я как его разработчик, обязуюсь отследить все неровности и шероховатости. Не использование dynamic_cast внутри этих методов позволит мне кое в чем выграть. Есть ли в этом грубая ошибка ? Скорее, некрасивость. И в этом случае, если и кастить - то через C-style cast, и ни вкоем случае не использовать reinterpret_cast. В ряде случаев можно static_cast, но только для случаев downcast'а. |
Сообщ.
#20
,
|
|
|
Цитата Flex_Ferrum, 22.01.04, 16:49 Скорее, некрасивость да, в коде не очень красиво Цитата Flex_Ferrum, 22.01.04, 16:49 И в этом случае, если и кастить - то через C-style cast через него Цитата Flex_Ferrum, 22.01.04, 16:49 ни вкоем случае не использовать reinterpret_cast. не, конечно, обойдусь Цитата Flex_Ferrum, 22.01.04, 16:49 В ряде случаев можно static_cast, но только для случаев downcast'а а это еще зачем ? тут то какие проблемы ? |
Сообщ.
#21
,
|
|
|
Цитата Sazabis, 22.01.04, 17:10 Цитата Flex_Ferrum, 22.01.04, 16:49 В ряде случаев можно static_cast, но только для случаев downcast'а а это еще зачем ? тут то какие проблемы ? Дополнительный контроль на этапе компиляции. |
Сообщ.
#22
,
|
|
|
Цитата Sazabis, 22.01.04, 13:45 Не использование dynamic_cast внутри этих методов позволит мне кое в чем выграть. Не стоит с этим заморачиваться. Богатая практика различных людей доказала - оптимизировать нужно алгоритмы, а не микромоменты. Прибавка производительности таким путем оптимизации чаще всего несущественна по сравнению с трудозатратами на нее и проблемами, которая она создает. Хотя, конечно, как развлечение это в каком-то смысле интересно, но в реальных продуктах акценты обычно другие. |
Сообщ.
#23
,
|
|
|
Цитата Fantasist, 23.01.04, 01:08 Хотя, конечно, как развлечение это в каком-то смысле интересно, Добавлено в : Вобщем, все понятно стало. Всем спасибо за внимание, особо AlexSm, и особо-особо Flex_Ferrum, в частности за 17 пост B) Награждаю оных плюсиками считаю тему закрытой |