Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
ViGOur |
1.10.2008, 12:08
Сообщение
#11
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Цитата(kuler @ 1.10.2008, 12:15) Link про static_cast и dynamic_cast написано не шибко правильно Цитата(kuler @ 1.10.2008, 12:44) Link вломы писать, там много, труп страуса почитайте дело в том, что если так говоришь, то нужно описать, что именно не так! Иначе лучше просто промолчать... |
|
|
|
|
kuler |
1.10.2008, 14:04
Сообщение
#12
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1
|
static_cast срабатывает на этапе компиляции, проверяет типы на подобность, dynamic_cast срабатывает на этапе выполнения проверяя реально ли можно приравнять объекты, кроме того объекты должны быть полиморфны, нельзя приравнивать void*.
Исправляйте репутацию. |
|
|
|
|
Litkevich Yuriy |
1.10.2008, 14:13
Сообщение
#13
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(kuler @ 1.10.2008, 18:04) Link Исправляйте репутацию. все в твоих руках.Вот тема, в ней конкретные сообщения. Поправь их, добавь точности или укажи где ошибка и как должно быть, чтобы было без ошибки. принесешь полезную информацию, репутация поднимится |
|
|
|
|
Tonal |
2.10.2008, 13:15
Сообщение
#14
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17
|
Цитата(kuler @ 1.10.2008, 18:04) Link static_cast срабатывает на этапе компиляции, проверяет типы на подобность, dynamic_cast срабатывает на этапе выполнения... Я этому где-нибудь противоречил? Перечитай внимательно что я написал. Я не описывал поведение обоих приведений а всего лишь утверждал о их взаимозаменимости в частном случае. Или ты можешь привести пункт стандарта, который запрещает то, о чём я написал? |
|
|
|
|
kuler |
2.10.2008, 15:26
Сообщение
#15
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1
|
Цитата(Tonal @ 2.10.2008, 14:15) Link Цитата(kuler @ 1.10.2008, 18:04) Link static_cast срабатывает на этапе компиляции, проверяет типы на подобность, dynamic_cast срабатывает на этапе выполнения... Я этому где-нибудь противоречил? Перечитай внимательно что я написал. Я не описывал поведение обоих приведений а всего лишь утверждал о их взаимозаменимости в частном случае. Или ты можешь привести пункт стандарта, который запрещает то, о чём я написал? да я не тебе написал, а первому сообщению |
|
|
|
| Гость_Гость_Barabas_*_* |
2.6.2012, 12:32
Сообщение
#16
|
|
Гости |
Благодарю за эту информацию! Искал именно это=)
|
|
|
|
|
Алексей1153 |
4.6.2012, 7:28
Сообщение
#17
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
Цитата(kuler @ 1.10.2008, 17:04) Link Исправляйте репутацию. готово! ============================== моё ИМХО 1) использование static_cast иногда может быть вполне оправдано - для подстраховки на этапе компиляции. 2) Необходимость использования dynamic_cast: a ) признак кривого проектирования. Равно как и явное приведение к void* и из него - тоже такой признак b ) при поддержке чужого запутанного кода - это подстраховка в реалтайме (можно всегда результат каста проверить на ноль) Поэтому лучше проектировать так, чтобы кастить через этот оператор не было необходимости. Кроме того, для возможности применения dynamic_cast класс обязан иметь хотя бы одну виртуальную функцию, что не всегда приемлимо 3 ) Необходимость использования reinterpret_cast : см. п 2)a) . Но ещё иногда требуется, к примеру, при взамодействии с ранее написанным кодом на чистом си (пример - WinAPI , извещения WM_NOTIFY от стандартных контролов) Критика принимается Сообщение отредактировал Алексей1153 - 7.6.2012, 7:04 |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 31.12.2025, 20:44 |