static cast



Dynamic cast

Автор КАДУМ задал вопрос в разделе Другие языки и технологии

С++: Чем понижающий static_cast отличается от понижающего dynamic_cast-а? и получил лучший ответ

Ответ от Голый Мужик[гуру]
Семантически разница заключается в том, что static_cast проводит преобразование типов на уровне компиляции, а dynamic_cast - на этапе выполнения. Технически это означает, что dynamic_cast использует RTTI, а static_cast - нет. Практическое различие заключается в том, что в случае несоответствия фактического типа ожидаемому при уточнении типов, dynamic_cast вернёт нулевой указатель. Это, в частности, означает, что с помощью dynamic_cast можно на этапе выполнения проверить, является ли экземпляр, обобщённый типом A, экземпляром типа B, производного от A. Однако следует помнить, что RTTI в C++ убог и просто уё-ищен: среда исполнения этого языка минимальна, а рефлексия отсутствует напрочь. Поэтому, считающий себя Ъ C++-программист не использует RTTI, а инкапсулирует зависящий от типа код в виртуальные методы. Ибо на фокусы, основанные на работе рантайма, воможностей C++ всё равно не хватит, а банальные проверки и уточнения типов прекрасно заменяются полиморфизмом.

Ответ от ?????? Зелёный змий ??????[гуру]
Боже мой! Слов то каких умных нахватался. Да никакой, обе потенциально содержат багу. Потому что они используются не для понижения и для повышения (даже если считать что <b*> это <B*>).

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: С++: Чем понижающий static_cast отличается от понижающего dynamic_cast-а?
спросили в Cassida 27 октября
Half-Life 2. Что такое Half-Life 2 Lost Coast
Half-Life 2: Lost Coast (рус. «Затерянное побережье» ) — распространяемый в составе комплектов
подробнее...
спросили в Музыка
чем цап Burr-Brown PCM 1792A отличается от BurrBrown PCM1795...
While they are based on a similar architecture, the PCM1795 and PCM1792A are different.
подробнее...
спросили в Гордон Help
В каком порядке проходить все серии Half-Life? С первой части и до последней.
Opposing Force, Blue Shift - это дополнения. В оппозинге играешь за военного, в блуе шифт - за
подробнее...
спросили в Audi Cup
Помогите пожалуйста расшифровать и перевести аббревиатуры (немецеий язык) CAF – DAF – FOB - Пожалуйста.
САF - cost and freight - "стоимость и фрахт" - Все расходы по транспортировке, исключая затраты на
подробнее...

Какой спининг лучше купить для ловли на джиг?
Лучше всего иметь три
ультралайт 0-8г
средний 8-25г
и тяжелый 25-50г
каждый для
подробнее...
Dynamic cast на Википедии
Посмотрите статью на википедии про Dynamic cast
Static cast на Википедии
Посмотрите статью на википедии про Static cast
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*