static_cast是C++中的一种类型转换操作符,用于在具有明确转换关系的类型之间进行转换。这种转换在编译时进行检查,因此比C风格的强制类型转换更安全。static_cast可以用于基本数据类型之间的转换、派生类与基类之间的指针或引用转换(在安全的条件下)、void指针与其他类型指针之间的转换等。 2. 强制类型转换(Type Casting...
double d = static_castdouble>(n); // 基本类型转换 int *pn = &n; double *d = static_castdouble *>(&n) //无关类型指针转换,编译错误 void *p = static_castvoid *>(pn); //任意类型转换成void类型 dynamic_cast 有条件转换,动态类型转换,运行时类型安全检查(转换失败返回NULL): 1. 安全的基...
static_cast<类型>(变量表达式) 应用场景: 用于类层次结构中基类和派生类之间引用或指针的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的。 进行下行转换(把基类的指针或引用转换成派生类表示),由于没有动态类型检查,不安全。 用于基本数据类型之间的转换 把空指针转换成目标类型的空指针 把任何...
inta=8;intb=3;doubleresult=static_cast<double>(a)/static_cast<double>(b); 1 2 3 格式如下: static_cast<类型>(变量表达式) 应用场景: 用于类层次结构中基类和派生类之间引用或指针的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的。 进行下行转换(把基类的指针或引用转换成派生类...