C++程序中正则转换、static_cast和dynamic_cast的区别


static_cast - 用于普通类型转换。它也负责隐式类型强制转换,也可以显式调用。在将浮点数转换为整数、字符转换为整数等情况下,应该使用它。

dynamic_cast - 用于处理多态性。只有在转换为派生类时才需要使用它。这专门用于在从基类转换为派生类时使用继承。

正则转换 - 这是C++中最强大的转换,因为它结合了const_cast、static_cast和reinterpret_cast。但它也不安全,因为它不使用dynamic_cast。这也称为C风格转换。

其他可用的转换

const_cast - 可用于删除或添加变量的const属性。如果需要添加/删除变量的const属性,这将非常有用。

reinterpret_cast - 使用起来最棘手。它用于重新解释位模式,并且处于非常底层。它主要用于将原始数据比特流转换为实际数据或将数据存储在对齐指针的低位中。

更新于: 2019年7月30日

571 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告