我是一位研究高級C++主題的新手,所以如果問題聽起來太明顯,請原諒我。使用typeid實現RTTI
我一直在閱讀有關各種方法,通過它們我們可以在運行時以C++(通常稱爲RTTI)獲取對象類型的信息。
但是,我很困惑它是如何工作的。 我讀過一些RTTI解釋時經常提到的東西。其中之一是動態使用dynamic_cast <>將對象強制轉換爲其他對象。另一個是在運行時使用typeid來確定對象的類型。
我想知道使用typeid是否是在C++中實現RTTI的正確方法,如果是,那麼typeid操作符在運行時如何確定對象的類型(是否分析在內存中的對象blob?)
如果使用typeid不是正確的方式,那麼請爲其實現提供其他方法。
它看起來像你倒退了。 'typeid'可以工作,因爲RTTI是在編譯器中實現的,所以詢問是否使用'typeid'「來實現RTTI」看起來很混亂。 「實施RTTI」是什麼意思? – 2013-04-28 18:40:44
你試圖解決什麼問題讓你覺得你需要RTTI和/或typeid? – quamrana 2013-04-28 18:41:31
C++ RTTI系統是[反射](http://en.wikipedia.org/wiki/Reflection_%28computer_programming%29)的一個非常差和功能較少的變體。我個人的觀點是,無論使用哪種語言,都應儘可能避免設計中的任何反射需求。 – 2013-04-28 18:43:17