c++:强制类型转换
static_cast<>()
用于任何隐式转换,非const到const的转换,void*到特点类型指针的转换,还可用于继承关系中子类到基类的转换。
const_cast<>()
将const变量转换为非const变量
dynamic_cast<>()
用于继承关系的对象的指针和引用的转换。
可实现从基类到子类的转换,和子类到基类的转换。
reinterpret_cast<>()
任意类型都可转换,比如说将int转成指针,将int*转成char*等
“reinterpret_cast 运算符并不会改变括号中运算对象的值,而是对该对象从位模式上进行重新解释”
https://zhuanlan.zhihu.com/p/33040213
与c语言的强制转换相比:
更加安全。
可以进行错误校验。