c++类型转换(持续更新)

1. static_cast

static_cast 是 C++ 中的一个类型转换操作符(type cast operator),用于执行静态类型转换。静态类型转换在编译时进行,用于将一种类型的值转换为另一种类型。

static_cast 操作符的语法为:

static_cast<new_type>(expression)
// 实例
double test = 5.5;
int output = static_cast<int>(test);  // i = 5

其中 new_type 是要转换的目标类型,expression 是要转换的表达式。

static_cast 可以用于以下情况:

  • 基本数据类型之间的转换,例如将 int 类型转换为 double 类型。
  • 类类型之间的转换,但有限制条件:
     - 可以在继承层次结构中进行上行转换(向基类指针或引用的转换)或下行转换(向派生类指针或引用的转换)。
     - 可以将指针或引用从 void* 转换为任何类型。
     - 不能在不同的不相关类型之间进行任意转换。
    需要注意的是,使用 static_cast 进行类型转换时,编译器不会执行运行时类型检查,因此应确保转换是安全的。如果无法确认转换的安全性,可能需要考虑使用动态类型转换操作符 dynamic_cast 等更安全的转换方式。

2. dynamic_cast

你可能感兴趣的:(C/C++程序设计,c++,java,开发语言)