C стиль кастинга очень и очень опасен. Таким образом, C ++ категорически разделил приведение к типам ниже на основе типичного использования,
dynamic_cast (expression) - разрешает приведение между надлежащей иерархией классов.
const_cast (выражение) - отбрасывает константу.
static_cast (выражение) - до некоторой степени стиль C, но все же учитывает некоторые несовместимости между типами и не позволяют.
reinterpret_cast (выражение) - если требование все еще не выполнено, это доступно. Кастинг в стиле C, но с именем. Так что его будет легко найти в большой базе кода.
Примечание: - Большинство "reinterpret_cast" может быть устранено при правильном дизайне. Другими словами, «reinterpret_cast» необходим, значит, скорее всего, что-то не так в дизайне.
Обновление:
Это должно быть последним вариантом, и в случае выше, использование является правильным. Теперь упоминание reinterpret_cast создаст у читателя впечатление, что автор намеренно решил не заботиться о безопасности типов. Но использование кастинга в стиле c не создаст такого впечатления.