Posted on 2011-01-13 20:43
逐漸 閱讀(1981)
評(píng)論(4) 編輯 收藏 引用
最近遇到的一個(gè)問(wèn)題,大伙來(lái)討論一下,希望得到高手的指點(diǎn),代碼的結(jié)構(gòu)是這樣的:
1 class Para_Base
2 {
3
4 };
5
6 class GA_Para
7 :public Para_Base
8 {
9
10 };
11
12 template <typename Para_Type>
13 class Alg_Base
14 {
15 //
16 shared_ptr<Para_Type> m_pPara;
17 };
18
19 class GA_Alg
20 :public Alg_Base<GA_Para>
21 {
22
23 } 解釋一下,一個(gè)參數(shù)基類(lèi),是各種算法參數(shù)的公共基類(lèi),第二個(gè)類(lèi)是GA算法的參數(shù)類(lèi),繼承自Para_Base,第三個(gè)類(lèi)是各種算法的基類(lèi),是個(gè)模板類(lèi),模板參數(shù)類(lèi)型是算法參數(shù)類(lèi)型,如GA_Para,第4個(gè)類(lèi)是GA算法類(lèi),繼承自Alg_Base
,這樣m_pPara對(duì)不同的算法指向不同的參數(shù),但這樣改動(dòng)一下代碼,程序得從頭重新編譯,因?yàn)槌绦驇?kù)的確比較大,編譯起來(lái)挺花時(shí)間的,(這是師兄帶我寫(xiě)的一個(gè)智能演化算法的庫(kù),即將完成,我們打算開(kāi)源,完成后再通告大家)大家有沒(méi)有更好的設(shè)計(jì)方法,比如把定義與實(shí)現(xiàn)分開(kāi),還望大家多發(fā)表些意見(jiàn),不勝感激。