拥有多策略
类后,不必使用继承的虚函数
机制.来实现多态
.代码如下:
#include "多策略.cpp"
构 B{
空 f(){
打印("啊");
}
};
构 C{
空 f(){
打印("哦");
}
};
构 D{
空 f(){
打印("D");
}
};
元<类 T>概念 有啊=要求(T*t){
t->f();
};//有概念
#define 鸭动作(S,f)\
元<类 T>构 S{\
静 常式 空 动作(T&t){f<T>(t);}\
};
//用鸭动作来包装函数模板
元<有啊 T>空 f(T&t){
t.f();
}//实现函数接口.
鸭动作(G,f);
空 主(){//B,C,D实现同一个策略
多策略<B,C,D>a;//挨个构建.
a.动作<G>();//调用方法.
}
需要个函数模板
转类模板
.高级技巧中,非常需要它:
#define 鸭动作(S,f)\
元<类 T>构 S{\
静 常式 空 动作(T&t){f<T>(t);}\
};
很重要,可自由扩展
!