c++强制类型转换显式
时间: 2023-07-01 21:25:11 浏览: 124
C++中的强制类型转换是一种显式的类型转换,可以将一个类型转换为另一个类型。C++提供了四种强制类型转换方式:
1. 静态转换(static_cast):将一种类型转换为另一种类型,但没有运行时类型检查。
2. 动态转换(dynamic_cast):在运行时检查类型安全,将一个指向基类的指针或引用转换为指向派生类的指针或引用。
3. 常量转换(const_cast):从一个常量类型中移除const属性,或将一个变量转换为const类型。
4. 重新解释转换(reinterpret_cast):将一个类型的位模式重新解释为另一个类型的位模式。
以下是一些强制类型转换的示例:
```
// 静态转换
int i = 10;
double d = static_cast<double>(i);
// 动态转换
class Base { ... };
class Derived : public Base { ... };
Base* b = new Derived;
Derived* d = dynamic_cast<Derived*>(b);
// 常量转换
void func(const int* ptr) { ... }
int* i = const_cast<int*>(ptr);
// 重新解释转换
int i = 0x3f800000; // IEEE 754格式的float类型1.0的位模式
float f = reinterpret_cast<float&>(i);
```
阅读全文