1
#include <stdio.h>
2
#include <stdlib.h>
3
4
template<typename Item>
5
class HIFState
6

{
7
public:
8
virtual ~HIFState()
9
{
10
}
11
12
public:
13
Item m_evaValue;//目标函数值
14
};
15
16
template<typename State>
17
class HIFComparator
18

{
19
public:
20
virtual bool Compare(const State& item1, const State& item2) = 0;
21
};
22
23
template<typename Item>
24
class HIFStateComparator : public HIFComparator<HIFState<Item>*>
25

{
26
public:
27
typedef typename HIFState<Item>* State;
28
virtual bool Compare(const State& item1, const State& item2)
29
{
30
printf("HIFStateComparator->Compare\n");
31
return (item1->m_evaValue < item2->m_evaValue);
32
}
33
};
34
35
void main()
36

{
37
HIFState<double>* pState1 = new HIFState<double>;
38
HIFState<double>* pState2 = new HIFState<double>;
39
40
HIFComparator<HIFState<double>*>* pStateComparator = new HIFStateComparator<double>;
41
pStateComparator->Compare(pState1, pState2);
42
//

43
delete pStateComparator;
44
system("pause");
45
}