C语言风格的类型转换符
- (type) expression
- type (expression)
C++中有4个类型转换符
- static_cast
- dynamic_cast
- reinterpret_cast
- const_cast
- 使用格式:xx_cast(expression)
const_cast
一般用于去除 const 属性,将 const 转换成非 const。
dynamic_cast
一般用于多态类型的转换,有运行时安全检测。
static_cast
对比 dynamic_cast,缺乏运行时安全检测。
不能交叉转换(不是同一继承体系的无法转换)。
常用于基本数据类型的转换、非 const 转成 const。
使用范围较广。
reinterpret_cast
属于比较底层的强制转换,没有任何类型检查和格式转换,仅仅是简单的二进制数据拷贝。
可以交叉转换。
可以将指针和整数互相转换。