static_cast 用法
用法
static_cast < type-id > ( expression )
说明:该运算符把expression
转换为type-id
类型,但没有运行时类型检查来保证转换的安全性。
来源:为什么需要static_cast强制转换?
- 情况1:void指针->其他类型指针
- 情况2:改变通常的标准转换
- 情况3:避免出现可能多种转换的歧义
它主要有如下几种用法:
•用于类层次结构中基类和子类之间指针或引用的转换。进行上行转换(把子类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成子类指针或引用)时,由于没有动态类型检查,所以是不安全的。
•用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。
•把void指针转换成目标类型的指针(不安全!!)
•把任何类型的表达式转换成void类型。
注意:static_cast
不能转换掉expression
的const、volitale、或者__unaligned属性。
举例: