#include "stdafx.h"
#include <vector>
#include <iostream>
#include <string>
#include <map>
using namespace std;
typedef map<string,int> vint;
//定义模板函数!
template<class T>
bool output(T _t){
return _t.out();
}
//策略1
class A
{
public:
bool out(){ printf("i am an A !\n"); return false; };
};
//策略2
class B
{
public:
bool out(){printf("i am an B!\n"); return true;};
};
//上下文
void outcontext(){
A a1;
B b1;
if (!output(a1))
{
output(b1);
}
}
int main(int argc, char* argv[])
{
outcontext();
return 0;
}
可能都可以统一为模板方法模式!