動態建立2

2021-05-24 02:09:43 字數 537 閱讀 4115

在modern c++ design中提到了一種使用工廠來管理所有類別的解決方案,類別都儲存在乙個map裡,每個具體的產品類向該工廠註冊。建立物件時通過呼叫createobject(int itypeid)就可以得到相應的類別。同前一種比起來,這種方法更容易理解。

首先需要乙個工廠類,它應該是乙個singleton,提供registertype,deregistertype, createclassobject這幾個呼叫。用途分別是註冊,反註冊,建立物件。

如果是自註冊,就要求建立任何乙個產品物件之前就已經完成註冊了。靜態成員變數可以滿足這個要求。靜態成員變數在建構函式被編譯成二進位製碼後,每當系統載入可執行檔案或者是dll時就會自動建立它們,而且早於main或者winmain。

因此定義乙個autoregister類

每個產品類中都包含乙個autoregister靜態成員變數

在原始檔中定義

這樣就實現了自註冊。由此可見static成員變數在實現類的一些註冊,資訊全域性儲存具有很重要的作用。

有了上面這些就可以使用這個工廠了**如下:

動態2 由類名建立物件

前言 同上文一樣,本文源於對另一位朋友的問題的解答 參見帖子http munity.csdn.expert topic 3202 3202729.xml?temp 5.602664e 02 c 不是動態語言,所以沒法從語言機制上實現類的動態建立,但這樣的需求卻有可能存在,乙個類似的例子便是mfc中c...

動態選單 動態建立選單

動態建立選單 windows應用程式的介面,不僅僅是乙個簡單的窗體,每個窗體中都包含具體實現功 能的控制項,包括能夠顯示基本資訊的label控制項,能夠在其中輸入內容的文字框控制項,能 夠設定選項的選擇按鈕控制項等。net提供了很多使用簡單 功能強大的控制項,幫助程式設 計者快速有效地開發應用軟體。...

動態建立icon

前一陣找了好久也沒有找到有關動態建立icon的文章,後來偶然發現一片寫的,確實c 的。不能新增到vc6的mfc工程裡裡去。哎。還是自食其力,看文件寫個了。這裡是建立乙個帶字串的hicon,想一下某些日曆軟體在系統托盤上的日期顯示。看了這個,相信看客可以舉一反三了。hicon createstrico...