C++ 中应何时使用 static_cast、dynamic_cast、const_cast 和 reinterpret_cast?


const_cast

可以用于移除或添加变量的 const。如果需要向变量添加/移除 const,则此 cast 很有用。

static_cast

用于正常的/普通的类型转换。此 cast 还负责隐式类型强制转换,也可以显式调用。应在将浮点数转换为整数、字符转换为整数等情况下使用它。

dynamic_cast

此 cast 用于处理多态。当强制转换为派生类时,你只需使用该 cast。这仅在从基类强制转换为派生类时的继承中使用。

reinterpret_cast

此 cast 最棘手。用于重新解释位模式,且极其底层。主要用于将原始数据位流变为实际数据或将数据存储在对齐指针的低位这样的事项。

更新于: 23-6-2020

3K+ 浏览

启动你的职业生涯

完成课程以获取认证

开始吧
广告
© . All rights reserved.