c++里的类型转换种类
在c++里包含4种,static_cast,dynamic_cast,const_cast,reinterpret_cast。
4种类型
reinterpret_cast: 强制类型转换符,修改操作数类型,给出了对象的Bit模型,而没有进行二进制转化;慎用;
static_const: 类层次之间父类和子类的转换。父类的指针或是引用转换到基类是安全的;反过来就不安全了。
基本数据之间的转换。与reinterpret_const相比,static_const可以进行二进制的转化;基本上与c风格的()转换功能一样;
const_cast: const转换为非const;
dynamic_const: 类层次之间父类和子类的转换
,类层次进行上行转换时,和static_const效果一样。
,类层次进行上行转换时,和static_const效果一样。
dynamic_const会进行动态时检查。基类必须含有虚函数,而static_const没这个要求。在进行下行转换时,dynamic_const和static_const都通不过,但是 dynamic返回null,而static_const编译时刻错误,充分说明了一个是动态时刻检查,一个是编译时刻错误。