C++强制类型转换
强制类型转换
[*]命名强制类型转换 cast-name(expression)
[*]
[*]static_cast
[*]const_cast
[*]reinterpret_cast
[*]dynamic_cas
命名强制类型转换 cast-name(expression)
static_cast
只要不包含底层const,都可以使用。适合将较大算术类型转换成较小算术类型
const_cast
只能改变底层const,例如指向const的指针(指向的对象不一定是常量,但是无法通过指针修改),如果指向的对象是常量,则这种转换在修改对象时,结果未定义。
reinterpret_cast
通常为算术对象的位模式提供较低层次上的重新解释。如将int转换成char。很危险!
dynamic_cas
一种动态类型识别。转换的目标类型,即type,是指针或者左右值引用,主要用于基类指针转换成派生类类型的指针(或引用),通常需要知道转换源和转换目标的类型。如果转换失败,返回0(转换目标类型为指针类型时)或抛出bad_cast异常(转换目标类型为引用类型时)
页:
[1]