一、static_cast
对于类型转换,我们常常这么做:
(type) expression
引进了static_cast类型转换操作符后,我们只需这样做:
static_cast<type>(expression)
例如:
int firstNumber, secondNumber;
double result = ((double)firstNumber)/secondNumber;
double result = static_cast<double>(firstNumber)/secondNumber;
二、const_cast
简而言之,const_cast 最普通的用途就是转换掉(去掉)对象的 const 属性。
看下面例子:
三、dynamic_cast
它被用于安全地沿着类的继承关系向下进行类型转换。这就是说,你能用 dynamic_cast 把指向基类的指针或引用转换成指向其派生类或其兄弟类的指针或引用,而且你能知道转换是否成功。失败的转换将返回空指针(当对指针进行类型转换时)或者抛出异常(当对引用进行类型转换时)