主要有以下几个:
static-cast const_cast reinterpret_cast dynamic_cast
static_cast:
只要不包含底层const,都可以使用。
例如:double slope = static_cast<double>(j) / i;当需要把一个较大的算术类型赋值给较小的类型时,static_cast非常有用
const_cast:
const_cast只能改变对象的底层const
例如:const char *pr; char p = const_cast<char*>(pr);
reinterpret_cast:
通常为运算对象的位模式提供较低层次的重新解释,不推荐使用。
例如:int *pi;char *pc = reinterpret_cast<char*>(pi);