Здравствуйте, гость ( Вход | Регистрация )
Алексей1153 | Дата 4.6.2012, 7:28 |
Исправляйте репутацию. готово! ============================== моё ИМХО 1) использование static_cast иногда может быть вполне оправдано - для подстраховки на этапе компиляции. 2) Необходимость использования dynamic_cast: a ) признак кривого проектирования. Равно как и явное приведение к void* и из него - тоже такой признак b ) при поддержке чужого запутанного кода - это подстраховка в реалтайме (можно всегда результат каста проверить на ноль) Поэтому лучше проектировать так, чтобы кастить через этот оператор не было необходимости. Кроме того, для возможности применения dynamic_cast класс обязан иметь хотя бы одну виртуальную функцию, что не всегда приемлимо 3 ) Необходимость использования reinterpret_cast : см. п 2)a) . Но ещё иногда требуется, к примеру, при взамодействии с ранее написанным кодом на чистом си (пример - WinAPI , извещения WM_NOTIFY от стандартных контролов) Критика принимается |
|
Гость_Barabas_* | Дата 2.6.2012, 12:32 |
Благодарю за эту информацию! Искал именно это=) | |
kuler | Дата 2.10.2008, 15:26 |
static_cast срабатывает на этапе компиляции, проверяет типы на подобность, dynamic_cast срабатывает на этапе выполнения... Я этому где-нибудь противоречил? Перечитай внимательно что я написал. Я не описывал поведение обоих приведений а всего лишь утверждал о их взаимозаменимости в частном случае. Или ты можешь привести пункт стандарта, который запрещает то, о чём я написал? да я не тебе написал, а первому сообщению |
|
Tonal | Дата 2.10.2008, 13:15 |
static_cast срабатывает на этапе компиляции, проверяет типы на подобность, dynamic_cast срабатывает на этапе выполнения... Я этому где-нибудь противоречил? Перечитай внимательно что я написал. Я не описывал поведение обоих приведений а всего лишь утверждал о их взаимозаменимости в частном случае. Или ты можешь привести пункт стандарта, который запрещает то, о чём я написал? |
|
Litkevich Yuriy | Дата 1.10.2008, 14:13 |
Исправляйте репутацию. все в твоих руках.Вот тема, в ней конкретные сообщения. Поправь их, добавь точности или укажи где ошибка и как должно быть, чтобы было без ошибки. принесешь полезную информацию, репутация поднимится |
|
kuler | Дата 1.10.2008, 14:04 |
static_cast срабатывает на этапе компиляции, проверяет типы на подобность, dynamic_cast срабатывает на этапе выполнения проверяя реально ли можно приравнять объекты, кроме того объекты должны быть полиморфны, нельзя приравнивать void*. Исправляйте репутацию. |
|
ViGOur | Дата 1.10.2008, 12:08 |
про static_cast и dynamic_cast написано не шибко правильно вломы писать, там много, труп страуса почитайте дело в том, что если так говоришь, то нужно описать, что именно не так! Иначе лучше просто промолчать... |
|
AD | Дата 1.10.2008, 11:57 |
вломы писать, там много, труп страуса почитайте Тогда нефиг хаять! Вообще, за такого рода посты я бы забанил. Что за ерунда? Вполне достоверная информация была приведена. Если она неполная, то можно дополнить, а не хаять! |
|
kuler | Дата 1.10.2008, 11:44 |
про static_cast и dynamic_cast написано не шибко правильно Ждем спаведливой критики вломы писать, там много, труп страуса почитайте |
|
fsMark | Дата 1.10.2008, 11:27 |
про static_cast и dynamic_cast написано не шибко правильно Ждем спаведливой критики |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 20.4.2024, 4:49 |