Posted on 2011-01-13 20:43
逐漸 閱讀(1973)
評論(4) 編輯 收藏 引用
最近遇到的一個問題,大伙來討論一下,希望得到高手的指點,代碼的結構是這樣的:
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 } 解釋一下,一個參數基類,是各種算法參數的公共基類,第二個類是GA算法的參數類,繼承自Para_Base,第三個類是各種算法的基類,是個模板類,模板參數類型是算法參數類型,如GA_Para,第4個類是GA算法類,繼承自Alg_Base
,這樣m_pPara對不同的算法指向不同的參數,但這樣改動一下代碼,程序得從頭重新編譯,因為程序庫的確比較大,編譯起來挺花時間的,(這是師兄帶我寫的一個智能演化算法的庫,即將完成,我們打算開源,完成后再通告大家)大家有沒有更好的設計方法,比如把定義與實現分開,還望大家多發表些意見,不勝感激。