int Num = static_cast(dPi); // Сделать неявное приведение явным
приведенном выше коде выражение Num = d P i работало бы не хуже и с тем же успе хом. Однако использование оператора s t a t i c _ c a s t привлекает внимание читателя к характеру преобразования и указывает (тому, кто знает оператор s t a t i c _ c a s t ) , что для выполнения необходимого преобразования типов компилятор выполнил необходимые кор ректировки на основании информации, доступной во время компиляции.
Использование оператора dynamic_cast
и идентификация типа времени выполнения
Динамическое приведение типов, как и предполагает его название, является противо положностью статического приведения типов и фактически выполняет приведение в ис полняющей среде (времени выполнения) — то есть во время выполнения приложения. Результат выполнения оператора d y n am ic c a s t можно проверить и выяснить, была ли успешной попытка приведения типов. Вот типичный синтаксис применения оператора d y n a m ic _ c a st:
|
Операторы приведения C++
|
343
|
тип_назначения* рНазн = dynamic_cast <тип_класса*>
|
(рИсточн) ;
|
|
if (рНазн) I I Проверить успех операции приведения
|
типов прежде,
|
|
|
Do'stlaringiz bilan baham: |