Posted on 2011-01-13 20:43 
逐渐 阅读(2006) 
评论(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对不同的算法指向不同的参数,但这样改动一下代码,程序得从头重新编译,因为程序库的确比较大,编译起来挺花时间的,(这是师兄带我写的一个智能演化算法的库,即将完成,我们打算开源,完成后再通告大家)大家有没有更好的设计方法,比如把定义与实现分开,还望大家多发表些意见,不胜感激。