c++类型转换
时间: 2023-07-01 20:21:22 浏览: 187
在 C++ 中,类型转换可以分为以下四种:
1. 隐式类型转换:由编译器自动完成,不需要程序员干预,例如将整型数赋值给浮点型变量。
2. 显式类型转换:由程序员手动完成,例如将浮点型变量强制转换为整型数。
3. static_cast:用于基本数据类型之间的转换,例如将整型数转换为浮点型变量。
4. dynamic_cast:用于类层次结构中的类型转换,例如将基类指针转换为派生类指针。
下面是一些示例:
```cpp
// 隐式类型转换
int a = 5;
double b = a; // 整型数自动转换为浮点型变量
// 显式类型转换
double c = 3.14;
int d = (int)c; // 强制将浮点型变量转换为整型数
// static_cast
int e = 10;
double f = static_cast<double>(e); // 将整型数转换为浮点型变量
// dynamic_cast
class Base {
public:
virtual ~Base() {}
};
class Derived : public Base {};
Base* pb = new Derived;
Derived* pd = dynamic_cast<Derived*>(pb); // 将基类指针转换为派生类指针
```
阅读全文