const_cast ,dynamic_cast,reinterpret_cast,static_cast ;

const_cast:

   一般用于强制消除对象的常量属性,他是唯一能够做到这一点的c++风格设为强制转型;

static_cast :

  可以用于强制隐式转换(like:non-const对象转型为const对象,int转为double,)它还可以用于很多这样的转换的反向转换,(like:void*指针转换为有类型指针,基类指针转为派生类指针)。但是它不能将一个const对象转为non-const对象,

dynamic_cast:

  主要用于执行“安全的向下转型(safe-downcasting)”。也就是说,要确定一个对象是否是一个继承体系中的一个特定类型,它是唯一不能用就风格语法执行的强制转型,也是唯一可能有重大运行时代价的强制转型;

reinterpret_cast:

  是特意用于底层的强制转型,导致实现依赖(implementation_dependent)(就是说,不可移植)的结果。like:将一个指针转为一个整数。这样的强制转型在底层代码以外应该极为罕见。

 

 

posted on 2013-10-31 16:32  andrezone  阅读(135)  评论(0)    收藏  举报

导航