请解释 static_cast 和 dynamic_cast 的区别,并说明各自适用的场景。
考察说明
考察对 C++ 类型转换机制的理解与应用场景区分
回答思路
- 准确说明 static_cast 是编译期转换,dynamic_cast 是运行时转换
- 说明 dynamic_cast 用于多态类型的安全向下转换,需要基类含虚函数
- 举出 static_cast 适用的场景(如基本类型转换、void* 转换)
- 说明 dynamic_cast 失败时指针返回 nullptr、引用抛出 bad_cast 异常
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。