//策略基类
class COperation
{
public:
intm_nFirst;
intm_nSecond;
virtualdoubleGetResult()
{
doubledResult=0;
returndResult;
}
};
//策略具体类—加法类
class AddOperation:publicCOperation
{
public:
AddOperation(inta,intb)
{
m_nFirst=a;
m_nSecond=b;
}
virtualdoubleGetResult()
{
returnm_nFirst+m_nSecond;
}
};
class Context
{
private:
COperation* op;
public:
Context(char cType)
{
switch(cType)
{
case '+':
op=new AddOperation(3,8)
break;
default:
op=new AddOperation();
break;
}
}
double?GetResult()
{
return? op->GetResult();
}
}
//客户端?
int main()
{
int a,b;
cin>>a>>b;
Context *test=new Context('+');
cout<<test->GetResult()<<endl;
return 0;
}