C++的四种强制类型转换
一:
动态类型转换
使用方法:
static_cast<转换类型>(原始数据)
特点:
可以进行基础数据类型的转换
可以进行父子类型的转换
二:
动态类型转换:
使用方法:
dynamic_cast<转换类型>(原始数据)
特点:
不可以进行基础数据类型转换
父转子不可以,子转父可以,如果发生多态,都可以
三:
const_cast<目标类型>(标识符):
特点:
目标只能是指针或者引用,它主要作用就是删除变量的const属性
用法:
const A a = 100;
A& a2 = const_cast<A&>(a);
A* a3 = const_cast<A*>(&a);
四:
reinterpret_cast;
特点:重新解释.可以把一种类型转化为另一种不想关的类型,不推荐使用