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