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、通信协议及开发工具链等核心内容。
查看13道真题和解析