dynamic cast 通常指 C++ 中的 dynamic_cast:一种运行时类型转换,主要用于类的继承体系中在基类/派生类指针或引用之间进行安全转换;转换失败时,指针形式会返回 nullptr,引用形式会抛出异常(std::bad_cast)。在泛指语境里,也可理解为“动态类型转换/运行时转换”。
/daɪˈnæmɪk kæst/
I used dynamic_cast to check whether the pointer really points to a Derived object.
我用 dynamic_cast 来检查该指针是否真的指向一个 Derived 对象。
In a polymorphic class hierarchy, dynamic_cast provides a safer way to downcast, but it may add runtime overhead compared with static_cast.
在多态类层次结构中,dynamic_cast 提供了更安全的向下转型方式,但与 static_cast 相比可能带来运行时开销。
dynamic 意为“动态的、运行时的”,cast 在编程语境中指“类型转换”。dynamic_cast 这一术语与操作符源自 C++ 的运行时类型识别(RTTI) 机制,用于在程序运行时根据对象的真实类型决定转换是否成立。
dynamic_cast 的用途与限制。 dynamic_cast,并给出替代设计思路。 dynamic_cast 的用法与失败情形。