深入淺出MFC學習筆記:MFC六大關鍵技術仿真之動態生成

動態生成

參考文獻:深入淺出MFC-侯捷

開始着手剖析動態生成的實現

有了類別型錄網,就可以開始着手解決棘手的動態生成問題。動態生成的困難點在於你沒有辦法在程序執行期間,根據動態獲得的一個類別名稱(通常是讀檔),要求程序產生一個對象。如果我們能夠把類別的大小記錄在類別型錄中,把構造函數(CruntimeClass::CreatObject)也記錄在類別型錄中,當程序在執行期間獲得一個類別名稱,它就可以在類別型錄中找出對應的元素,然後調用其構造函數(這裏所指的並非是C++中的構造函數),產生出對象。

因此可在CRuntimeClass中加以改進下,新的數據結構如下:






因此如果有一下語句,就可以組織成一棵大樹



其中凡是m_pfnCreateObject不爲NULL者,即可動態生成。圖中CFrameWnd和CWnd即可動態生成。

注:其實動態生成技術是爲了下文的Serialize技術做鋪墊。

 

發佈了145 篇原創文章 · 獲贊 3 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章