dynamic_Cast是一种试探性映射,如被映射的泪如目标类没有派生关系的话,则返回null,static_cast通常可用于类层次的静态导航,无映射变换,窄化变换(会丢失信息)等等,static_cast的应用要广一些,但如前所提到的,在类层次导航变换中我们应该使用前者,因为后者static_cast可能意味着冒险(比如变换时类似于强制转换一样丢失信息)。在某些情况下较dynamic_Cast快.reinterpret_cast是最危险的,只要编译通过就行,使用不当的话很有可能导致RUN-TIME大灾难.
3ks very much!
static_cast在相关的指针类型或对象之间进行类型转换,在转换时编译器会通过构造函数或转换类型函数转换关系
reinterpret_cast是强制转换,而不论是否提供了相应构造函数或转换类型
数,因此,在转换时其内存格式并不变化,例如,当对double转换成int后,通过cout输出时,输出的仍然是double类型,其主要目的是:将一个指针转换成其它类型的指针。