2016-04-05 57 views
-1

爲什麼我們需要在MFC中運行時間類信息?什麼是DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC的用法?爲什麼我們需要在MFC中運行時間類信息?

+1

Google「DECLARE_DYNAMIC」,「IMPLEMENT_DYNAMIC」和「RTTI」。 –

+0

試過但不是很清楚爲什麼我們需要這些宏。爲什麼我們需要運行時類信息的概念。以及它如何有用。任何人都可以用一個簡單的例子來解釋 –

+0

這一切都在MSDN中解釋(參見[DECLARE_DYNAMIC](https://msdn.microsoft.com/en-us/library/ywz9k63y.aspx),[IMPLEMENT_DYNAMIC](https:// msdn .microsoft.com/en-us/library/es8sbsx5.aspx)和[使用CObject](https://msdn.microsoft.com/en-us/library/1ybbhxe3.aspx),特別是關於[Dynamic Object創作](https://msdn.microsoft.com/en-us/library/4a790bwx.aspx))。 @MichaelWalz:MFC的動態類信息不止RTTI。它還實現了類工廠,它啓用了文檔模板,並作爲對象序列化的基礎。 – IInspectable

回答

0
  1. 這是RTTI在MFC和C++的早期階段實現的方式。
  2. 此機制用於具有特定的「類型」(指向CRuntimeClass的指針)並創建它的實例。即文檔/框架/視圖模型在文檔模板中使用這樣的運行時類。 (特別是DECLARE/IMPLEMENT_DYNAMIC)。
  3. 此外,CArchive的動態序列化內容是使用此運行時類對象。
相關問題