C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:
TYPE b = (TYPE)a。
C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。
const_cast,字面上理解就是去const属性。
static_cast,命名上理解是静态类型转换。如int转换成char。(编译时检查转换,还可用于将子类对象转换成父类对象)
dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换。(运行时检查转换是否安全,多用于子类父类指针和引用的转换。子类对象可以自动转换成父类对象)
reinterpret_cast,仅仅重新解释类型,但没有进行二进制的转换。
4种类型转换的格式,如:TYPE B = static_cast(TYPE)(a)。
总结
去const属性用const_cast。
基本类型转换用static_cast。
多态类之间的类型转换用daynamic_cast。
不同类型的指针类型转换用reinterpret_cast。
转载地址:http://www.cnblogs.com/goodhacker/archive/2011/07/20/2111996.html