"предупреждение: использование старомодного литья" в g++

Возможный дубликат:
Когда следует использовать static_cast, dynamic_cast и reinterpret_cast?

С помощью этого кода на С++

char* a = (char*) b;

Я получил предупреждение warning: use of old-style cast.

Каким будет новый стиль?

Ответы

Ответ 1

reinterpret_cast, static_cast, dynamic_cast и const_cast - альтернативы слияния С++.

  • const_cast удалить const/volatile из константной переменной.
  • dynamic_cast для выполнения проверок времени выполнения при литье между полиморфными типами
  • static_cast для выполнения, например, up/down-cast в иерархии наследования, но без проверок времени выполнения или для явного выполнения преобразований, которые могут быть неявными (например, float to int).
  • reinterpret_cast для преобразования между несвязанными типами.