c++几种类型转换在派生类中的应用

  dynamic_cast  应用于具有多态性(或具有虚函数)的类之间。会对要转换的指针进行检查,如果指针指向的目标对象类型与所要转的类型一致,则转换成功。如果不一致,或完全是无关类型,则得到一个空指针。所以使用dynamic_cast时,对返回值进行判断。因为引用不存在空引用,dynamic_cast会在执行时抛出异常(std::bad_cast)。

  static_cast  可以接受基类与子类的类型转换。对于基类与基类子类的子类之间的类型转换也能接受,但是这样的转换是有风险的。static_cast会在无关类型之间转换时报错。

  reinterpret_cast  重解释类型的转换,在编译期或运行期都不做类型检查。使用的时候必须非常小心。

 

posted on   4IT  阅读(115)  评论(0编辑  收藏  举报

导航

点击右上角即可分享
微信分享提示