static_cast最接近于C风格转换,但在无关类指针转换时,编译器会报错,提升了安全性;
double d=3.14159265;
int i = static_cast(d);
dynamic_cast要求转换类型必须是指针或引用,且在下行转换时要求基类是多态的,如果发现下行转换不安全,dynamic_cast返回一个null指针,dynamic_cast总是认为void*之间的转换是安全的;
reinterpret_cast可以对无关类指针进行转换,甚至可以直接将整型值转成指针,这种转换是底层的,有较强的平台依赖性,可移植性差;
class A {};
class B {};
A * a = new A;
B * b = reinterpret_cast
09-03