运行时类型信息 (RTTI) 是一种允许在程序执行过程中确定对象的类型的机制。 RTTI 已添加到 C++ 语言中,因为许多类库供应商将自行实现此功能。 这会导致库之间出现不兼容的情况。 因此,显而易见的是,需要语言级别的对运行时类型信息的支持。
有三个针对运行时类型信息的 C++ 语言元素:
元素 | 作用 |
---|---|
dynamic_cast 运算符 | 用于多态类型的转换。 |
typeid 运算符 | 用于标识对象的确切类型。 |
type_info 类 | 用于保留由 typeid 运算符返回的类型信息。 |
Structure-of-an-Itanium-C-ABI-vtable
RTTI Internals in MSVC