什么时候应该使用static_cast,dynamic_cast,const_cast和reinterpret_cast?

const_cast

可用于删除或将const添加到变量。如果有必要从变量中添加/删除常量,这将很有用。

static_cast

这用于普通/普通类型转换。这也是负责隐式类型强制的强制转换,也可以显式调用。在将float转换为int,将char转换为int等情况下,应使用它。

dynamic_cast

此演员表用于处理多态。您只需要在转换为派生类时使用它。从基类转换为派生类时,只能在继承中使用它。

reinterpret_cast

这是最棘手的用法。它用于重新解释位模式,并且级别极低。它主要用于将原始数据位流转换为实际数据,或将数据存储在对齐的指针的低位中。