static_cast:
基类与派生类之间的转换;(基类–派生类不安全);内置内型之间的转换;把空指针转换为目标类型的空指针;把任何类型的表达式转换成void类型。
注:它不能转换const、volitale、_unaligned的属性
dynamic_cast:
必须是类的指针、引用或void*。
在上行转换(派生类—>基类)它和static_cast是一样的,但是在下行转换中它有类型检查功能,比static_cast更安全。
const_cast:
去掉const和volatile属性
reinterpret_cast:
任意指针(或引用)类型之间的转换;以及指针与足够大的整数类型之间的转换;从整数类型(包括枚举类型)到指针类型,无视大小。