用過虛函式的程式設計師,肯定對
switch/case
句型帶有一種不想用的心理,因為如果
case
過多的話,至少會有以下缺點: 1)
**太長,不適合檢視和管理; 2)
switch/case
不夠靈活; 3)
擴充性不夠好,比如每增加乙個
case
都要更改**。
mfc有乙個很好的框架,繼承自
cobject
且通過declare_dynamic()
和implement_dynamic
宣告的類,其動態建立類
cruntimeobject
都會被加到類別型錄網中去,如果能取得這個動態建立類,就能建立出該類物件。下面的**就是在類別型錄網中尋找類名對應的動態建立類,如果找到,就建立物件,並返回該物件指標;否則返回
null。
cobject* getobjbyclassname(cstring strclassname)
}
return null; }
返回的指標是
cobject *
型別,在得到後可以轉換成你需要的型別!(注意安全控制哦)
注:
1)
繼承自cobject 2
)declare_dynamic()
和implement_dynamic宣告
3)
要有預設建構函式
C 有指標成員的類如何拷貝 賦值該類物件
當乙個帶有指標成員 b的類a被拷貝或賦值給b時,該指標所指向的記憶體多出乙個指標b.b,這樣,當a 物件析構時,刪除了a.b所指向的記憶體,這時,當b析構時,利用delete 釋放b.b指向的記憶體時發現要釋放的記憶體不存在,會導致錯誤。class publisher class book book...
實驗名稱 類和物件的建立
實驗三 實驗課時 2 實驗性質 設計 實驗名稱 類和物件的創 實驗目的 1 熟悉 c 物件導向的程式設計的基本概念 2 練習類的定義和物件的建立 3 練習物件的成員函式的呼叫方法以及物件的初始化 實驗裝置 1 硬體 個人微機 配置不低於 cpu為 p4,主頻 1.6g 記憶體256mb 硬碟40gb...
得到乙個類的class物件
1.class的forname 方法的返回值就是class型別 2.class 類名 clazz 類名.class,例子 classclazz student.class 3.object 類中有乙個名為getclass的成員方法,返回的是物件執行時類的class物件。student stu new...