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

pro*_*eek 35 c++ casting g++

可能重复:
什么时候应该使用static_cast,dynamic_cast和reinterpret_cast?

有了这个C++代码,

char* a = (char*) b;
Run Code Online (Sandbox Code Playgroud)

我被警告warning: use of old-style cast.

什么是新式演员?

Eri*_*rik 53

reinterpret_cast,static_cast,dynamic_castconst_cast是++投替代的C.

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