C++ 中 static_cast, dynamic_cast, const_cast, reinterpret_cast 四种强制类型转换解释
static_cast : 静态转换,也称正常转换,是转换中最常用的一种转换,编译时期进行类型转换检查。
- 可用于相关类型转换比如:
整型和实型之间的转换
把子类转换成父类对象的转换
dynamic_cast : 程序运行时期进行,主要与来父类和子类之间的转换
const_cast : 编译时期进行,去除指针或引用的 const 属性,一般不推荐使用
reinterpret_cast : 编译时期进行,被认为是危险的类型转换,可以随意转,编译器不报错,但是要和符合规则