C++中有很多种强制类型转换,其中有很多是类型安全的,但是也有很多时类型不安全的。
C++给予了我们一个大尺度的类型转换体系,但是如果把握不当就可能导致错误。
?
http://www.chineselinuxuniversity.net/articles/25675.shtml
?
典型的C风格的类型转换,其中存在不确定性。其破坏性可以等同于reinterpret_cast
T(expression) // cast expression to be of type T
reinterpret_cast<new_type>(expression)
再bit层面进行转换
dynamic_cast<new_type>(expression)
主要用于多态的操作
static_cast<new_type>(expression)
在编译时使用类型信息执行转换, 在转换执行必要的检测(诸如指针越界计算, 类型检查)。 其操作数相对是安全的。
const_cast<new_type>(expression)
脱const保护