1.9 C++ 四种类型转换

一、static_cast

最常用的普通类型转换。用于编译时进行类型转换,不进行运行时类型检查。可以进行向上转换(隐式,不必使用),也可以保证合法向下转换(但不一定安全,只是让编译器认为安全,安全由程序员来保证),但不允许无关转换。

二、 dynamic_cast

运行时类型检查。主要用于向下转换,将基类指针/引用安全地转换为派生类指针/引用。在转换失败时返回 nullptr(指针)或抛出 std::bad_cast异常(引用)。成功条件:基类必须有虚函数,要不然不是多态;要转换的目标类型必须是对象的实际类型(或者是派生类型)。

三、const_cast

可以消除 const 或 volatile 属性。但是为保证安全只能消除常量指针的 const,修改 const 值/对象的常属性将导致不确定行为

四、reinterpret_cast

最危险的转换,直接重新解释 bit 位。

C++/嵌入式开发 秋招面经 文章被收录于专栏

一名985硕,在25年秋招中斩获多个C++/嵌入式开发Offer。本专栏将分享我的面经,涵盖C/C++、操作系统、计算机网络、ARM体系与架构、Linux应用/驱动开发、Qt、通信协议及开发工具链等核心内容。

全部评论

相关推荐

03-15 10:59
已编辑
美团_后端开发(实习员工)
爱写代码的菜code...:哎,自己当时拿到字节offer的时候也在感叹终于拿到了,自己当时最想去的企业就是字节,结果还是阴差阳错去了鹅厂。祝uu一切顺利!!!
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务