Posted on 2011-01-13 20:43
逐漸 閱讀(1977)
評(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ù)基類,是各種算法參數(shù)的公共基類,第二個(gè)類是GA算法的參數(shù)類,繼承自Para_Base,第三個(gè)類是各種算法的基類,是個(gè)模板類,模板參數(shù)類型是算法參數(shù)類型,如GA_Para,第4個(gè)類是GA算法類,繼承自Alg_Base
,這樣m_pPara對(duì)不同的算法指向不同的參數(shù),但這樣改動(dòng)一下代碼,程序得從頭重新編譯,因?yàn)槌绦驇?kù)的確比較大,編譯起來(lái)挺花時(shí)間的,(這是師兄帶我寫的一個(gè)智能演化算法的庫(kù),即將完成,我們打算開源,完成后再通告大家)大家有沒有更好的設(shè)計(jì)方法,比如把定義與實(shí)現(xiàn)分開,還望大家多發(fā)表些意見,不勝感激。