Static_cast和Dynamic_cast放在一起比较容易记,一动一静
Static_cast是静态转换,也就是编译时转换,可以完成基础类型的转换,然后任意类型指针与void指针的转换,还可以完成同一个继承体系中类型的转换。
Dynamic_cast是运行时转换,用于将基类的指针或引用安全的转换成派生类的指针或引用。也就是所谓的downcast,向下转换,因为向上转换upcast是没有问题的(子类转换为父类),因为父类的行为(函数)都包含在子类中。
同时,要保证基类中存在虚函数,保证多态。
Const_cast 去除掉常量属性
Reinterpret_cast 对二进制形式重新解释,但不改变其值。