static_cast,dynamic_cast, const_cast, reinterpret_cast

  • dynamic_cast比static_cast多了安全检测,判断源和目标有无继承被继承关系,所以强制将父类指针赋给子类指针的时候只能用static_cast。如class D:public B{};B* pb; D* pd = static_cast<D*>(pb);
  • const_cast用于强制消除对象的常量性
  • reinterpret_cast是特意用于底层的强制转型,如将一个指针转型为一个整数
05-11 19:56