c++几种类型转换在派生类中的应用
dynamic_cast 应用于具有多态性(或具有虚函数)的类之间。会对要转换的指针进行检查,如果指针指向的目标对象类型与所要转的类型一致,则转换成功。如果不一致,或完全是无关类型,则得到一个空指针。所以使用dynamic_cast时,对返回值进行判断。因为引用不存在空引用,dynamic_cast会在执行时抛出异常(std::bad_cast)。
static_cast 可以接受基类与子类的类型转换。对于基类与基类子类的子类之间的类型转换也能接受,但是这样的转换是有风险的。static_cast会在无关类型之间转换时报错。
reinterpret_cast 重解释类型的转换,在编译期或运行期都不做类型检查。使用的时候必须非常小心。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步