MFC執行時型別資訊相關類

2021-04-23 15:00:12 字數 1056 閱讀 2431

some guys seem to be unsatisfied to use mfc, they prefer to use pure win32 c++. but in some domains, mfc or similar framework will be a necessary option. the runtime class information is one of this domains.

只需要關注這兩個類:cobject,cruntimeclass

所有有這種需求的類,請都從cobject類派生,並且,從cobject類派生的類不允許多重繼承。

從cobject類派生的類有四個級別:

1:診斷記憶體管理;直接從cobject類派生

2:診斷記憶體管理+執行時類資訊;標頭檔案中使用declare_dynamic巨集;實現檔案中使用implement_dynamic巨集

3:診斷記憶體管理+執行時類資訊+動態建立;標頭檔案中使用declare_dyncreate巨集;實現檔案中使用implement_dyncreate巨集

4:診斷記憶體管理+執行時類資訊+動態建立+序列化;標頭檔案中使用declare_serial巨集;實現檔案中使用implement_serial巨集

isserializable:物件是否能夠被序列化

serialize:序列化

getruntimeclass:返回與該物件有關的cruntime結構

iskindof:測試該物件與一給定類的關係

cruntimeclass類的成員

m_lpszclassname:類的名字

m_nobjectsize:物件的大小

m_pbaseclass:指向基類的cruntimeclass結構的指標

m_pfncreateobject:乙個指向動態建立物件的函式指標

m_pfngetbaseclass:返回cruntimeclass結構

m_wschema:類的版本號

createobject:在執行時建立乙個物件

fromname:在執行時使用熟悉的類名建立乙個物件

isderivedfrom:確定該類是否派生於指定的類

初識MFC 執行時類資訊機制

1 執行時類資訊機制的作用 程式執行過程中,可以獲知物件的相關類的資訊 2 執行時類資訊機制的使用 2.1類必須派生自cobject類 2.2類內必須新增宣告巨集 declare dynamic 2.3類外必須新增實現巨集 implement dynamic cobject iskindof 來判斷...

執行時型別資訊

一.向下造型 動態型別轉換 dynamic cast 用於將基類型別的指標或引用轉換為其子類型別的指標或引用,前提是子類必須從基類多型繼承,即基類包含至少乙個虛函式 class a class b public a b b a pa b b pb dynamic cast pa a ra b b r...

執行時型別資訊RTTI

我們在寫c 的時候經常碰到使用dynamic cast進行型別轉換的情況,也都知道經過dynamic cast的轉換更加安全,因為dynamic cast進行了型別檢查。但是可能很多人不知道dynamic cast是c 執行時型別資訊 rtti 機制鏈條上的乙個節點。rtti提供了兩個操作符和乙個類...