C++ static_cast
static_cast 编辑 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。 中文名 暂无 外文名 static_cast 分 类 强制类型转换 类 型 C++ static_cast 目录 1 用法 2 简介 用法 编辑 static_cast < type-id > ( expression ) 简介 编辑 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于 类层次结构 中基类(父类)和 派生类 (子类)之间指针或引用的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。 ②用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。 ③把空指针转换成目标类型的空指针。 ④把任何类型的表达式转换成void类型。 注意:static_cast不能转换掉expression的const、volatile、或者__unaligned属性。 C++中static_cast和 reinterpret_cast 的区别 C++primer 第四版第五章里写了 编译器 隐式执行任何 类型转换