c++ static_cast显式类型转换
static_cast<>
在 C++ 中是一种用于执行显式类型转换的运算符,它在编译时检查类型转换的有效性,比 C 风格的强制转换(如 (int)x
)提供了更强的类型检查。
基本类型之间的转换
用于基本数据类型(如 int、float、double 等)之间的转换,使得不同类型的数据可以进行操作。
1 2 | int i = 10; float f = static_cast < float >(i); |
类型向上和向下转换
在类的继承体系中,static_cast<>
可以用于基类和派生类之间的转换。
- 向上转换(Upcasting):将派生类的指针或引用安全地转换为基类的指针或引用。这种转换是安全的,因为派生类总是包含基类的部分。
1 2 3 4 | class Base {}; class Derived : public Base {}; Derived d; Base* b = static_cast <Base*>(&d); |
- 向下转换(Downcasting):将基类的指针或引用转换为派生类的指针或引用。虽然
static_cast<>
支持这种转换,但它不执行运行时类型检查(RTTI),因此在执行向下转换时应谨慎,确保转换是安全的。
1 2 | Base b; Derived* d = static_cast <Derived*>(&b); // 危险! |
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
2023-04-05 sizeof 和 strlen 的区别