可能重复:
When should static_cast, dynamic_cast and reinterpret_cast be used?
使用此C ++代码,
char* a = (char*) b;
我收到警告warning: use of old-style cast
。
什么是新式演员?
答案 0 :(得分:45)
reinterpret_cast
,static_cast
,dynamic_cast
和const_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?