//运算操作基类
class COperation
{
public:
int m_nFirst;
int m_nSecond;
virtual double GetResult() //返回操作结果
{
double dResult=0;
return dResult;
}
};
//加法
class AddOperation : public COperation
{
public:
virtual double GetResult()
{
return m_nFirst+m_nSecond;
}
};
//减法
class SubOperation : public COperation
{
public:
virtual double GetResult()
{
return m_nFirst-m_nSecond;
}
};
//工厂类,为了方便我用的静态函数
class CCalculatorFactory
{
public:
static COperation* Create(char cOperator);
};
COperation* CCalculatorFactory::Create(char cOperator)
{
COperation *oper;
//在C#中可以用反射来取消判断时用的switch,在C++中用什么呢?我觉得是RTTI,后面可以讲到
switch (cOperator)
{
case '+':
oper=new AddOperation();
break;
case '-':
oper=new SubOperation();
break;
default:
oper=new AddOperation();
break;
}
return oper;
}
//客户端
int main()
{
int a,b;
cin>>a>>b;
COperation * op=CCalculatorFactory::Create('-');
op->m_nFirst=a;
op->m_nSecond=b;
cout<<op->GetResult()<<endl;
return 0;
}
分享到:
相关推荐
对我国广电业财务管理模式的浅析----以湖南广电集团为例(张毅).docx
会计信息系统的内部控制浅析----会计信息系统论文.doc
太原仟佰家网络营销模式浅析 (5)-论文.zip
太原仟佰家网络营销模式浅析 (3)-论文.zip
太原仟佰家网络营销模式浅析 (4)-论文.zip
太原仟佰家网络营销模式浅析 (2)-论文.zip
CIS2019-域权限维持方法浅析-终稿-20191125终.pdf
博客:浅谈MVP实现Android应用层开发 博客文章链接---------实例代码工程 博客:EventBus使用之基础 博客文章链接---------实例代码工程 博客:Android应用Design Support Library完全使用实例 博客文章链接--------...
AICD 控水技术浅析2014-11-19.pptx
浅析中国谍战剧-修改 - 副本-论文.zip
浅析Linux之信号-信号列表
高层建筑的消防安全管理浅析-安全管理-行业安全-消防安全.docx
铁路客车火灾简述及应急对策浅析-安全管理-行业安全-消防安全.docx
node.js的旅游网站设计浅析-网站设计-设计.pdf
数据通信技术及其应用前景浅析-数据通信-通信传播.pdf
浅析肖邦夜曲修改-论文.zip
浅析金融监管问题-论文.zip
消防应急灯具在建筑方向的应用浅析-安全管理-行业安全-消防安全.docx
煤矿机械加工制造行业的设备改造浅析-安全管理-行业安全-机械安全.docx