C风格的强制类型转换,不管什么类型的转换统统是: TYPE b = (TYPE)a;
C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。
static_cast 静态类型转换,如int转换char
reinterpreter_cast 重新解释类型
dynamic_cast 命名上理解是动态类型转换,如子类和父类的多态类型转换
const_cast 字面理解就是去const属性
double dpi = 3.1415926; int num1 = (int)dpi; //C类型转换 int num2 = static_cast<int>(dpi); //静态类型转换
char *p1 ="hello..."; int *p2 = NULL; p2 = reinterpreter_cast<int*>(p1);
通过reinterpreter_cast<>() 和 static_cast<>()把C语言的强制类型转换都覆盖了。
Dog *pDog = dynamic_cast<Dog *>(base); //父类对象转成子类对象
//向下转型