dynamic_cast: 基类和派生类之间转换,主要是向下转型。具有RTTI检查. C++通过虚表里存储一个typeinfo的结构, 从而获得类信息. 检查被转换指针是不是目标指针的子类等条件,不满足返回空。
const_cast: 主要针对const和volatile的转换. 主要将const指针应用转换,可重新赋值。
static_cast: 一般的转换,编译时确定,检查类关系, 主要是向下转型,而不检查继承关系,有点不安全。
reinterpret_cast: 用于进行没有任何关联之间的转换,比如一个字符指针转换为一个整形数, 很不安全。