在g ++中“警告:使用旧式演员”

时间:2011-03-09 17:05:42

标签: c++ casting g++

  

可能重复:
  When should static_cast, dynamic_cast and reinterpret_cast be used?

使用此C ++代码,

char* a = (char*) b;

我收到警告warning: use of old-style cast

什么是新式演员?

2 个答案:

答案 0 :(得分:45)

reinterpret_caststatic_castdynamic_castconst_cast是c ++的替代品。

  • const_cast从const变量中删除const / volatile。
  • dynamic_cast在多态类型之间进行运行时执行运行时有效性检查
  • static_cast在继承层次结构中执行例如up / down-cast,但没有运行时检查,或者显式执行可能隐式的转换(例如float to int)
  • reinterpret_cast可在不相关的类型之间进行转换。

答案 1 :(得分:4)

阅读本主题,了解各种风格的C ++样式转换:

When should static_cast, dynamic_cast, const_cast and reinterpret_cast be used?