C++ 中的常规类型转换 vs. static_cast vs. dynamic_cast
static_cast − 用于普通类型转换。它也负责隐式类型转换,并且可以显式调用。在将浮点数转换为整数、字符转换为整数等情况下,应该使用它。
dynamic_cast − 用于处理多态性。只有在转换为派生类时才需要使用它。它专门用于继承中,当从基类转换为派生类时。
常规类型转换 − C++ 中最强大的类型转换,因为它结合了 const_cast、static_cast 和 reinterpret_cast。但它也不安全,因为它不使用 dynamic_cast。它也被称为 C 风格类型转换。
其他可用类型转换
const_cast − 可用于删除或添加变量的 const 属性。如果需要向变量添加或删除 const 属性,这将非常有用。
reinterpret_cast − 使用起来最棘手。它用于重新解释位模式,并且处于极低的级别。它主要用于将原始数据位流转换为实际数据或将数据存储在对齐指针的低位中。
广告