我是研究高级 C++ 主题的新手,所以如果问题听起来太明显,请原谅我。
我一直在阅读有关在 C++ 中我们可以在运行时获取对象类型信息的各种方法,通常称为 RTTI。
但是,我对它是如何工作的感到困惑。我读过一些在解释 RTTI 时经常提到的东西。其中之一是使用 dynamic_cast<> 将对象动态地转换为其他对象。另一种是在运行时使用 typeid 来确定对象的类型。
我想知道使用 typeid 是否是在 C++ 中实现 RTTI 的正确方法,如果是,那么 typeid 运算符实际上如何能够在运行时确定对象的类型(它是否分析了对象 blob 中的位模式记忆? )
如果使用 typeid 不是正确的方法,那么请提出一些其他的实现方法。