C++ STATIC_CAST
时间: 2023-11-22 16:06:14 浏览: 96
c语言static
`static_cast`是C++中的一种类型转换操作符,用于将一种数据类型转换为另一种数据类型。它可以在编译时执行类型检查,因此比C语言中的强制类型转换更加安全。下面是一些`static_cast`的用法:
1.将指针或引用转换为另一种指针或引用类型:
```cpp
int i = 10;double d = static_cast<double>(i); // 将int类型转换为double类型
int* p = &i;
double* pd = static_cast<double*>(static_cast<void*>(p)); // 将int指针转换为double指针
```
2.将枚举类型转换为整数类型:
```cpp
enum Color { RED, GREEN, BLUE };
int i = static_cast<int>(RED); // 将枚举类型转换为int类型
```
3.将整数类型转换为枚举类型:
```cpp
enum Color { RED, GREEN, BLUE };
int i = 0;
Color c = static_cast<Color>(i); // 将int类型转换为枚举类型
```
4.将基类指针或引用转换为派生类指针或引用:
```cpp
class Base {};
class Derived : public Base {};
Base* pb = new Derived;
Derived* pd = static_cast<Derived*>(pb); // 将基类指针转换为派生类指针
```
阅读全文