大话设计模式中简单工厂模式的计算器实例的C++代码
来源:互联网 发布:腾讯云申请域名绿标 编辑:程序博客网 时间:2024/05/18 00:27
这里只是实现了加减乘除,和书中的C#实现的方法基本相似。
#include <iostream>#include <string>using namespace std;//Operation运算类class Operation{private:double _numberA;double _numberB;public:Operation(){}Operation(double numA,double numb):_numberA(numA),_numberB(numb){}virtual double GetResult(){double result = 0;return result;}void set_numberA(double numA){_numberA = numA;}void set_numberB(double numB){_numberB = numB;}double get_numberA(){return _numberA;}double get_numberB(){return _numberB;}};//加减乘除类class OperationAdd: public Operation{public:OperationAdd() { }OperationAdd(double numA,double numB):Operation(numA,numB){}double GetResult(){double result = 0;result = get_numberA()+get_numberB();return result;}};class OperationSub:public Operation{public:OperationSub() { }OperationSub(double numA,double numB):Operation(numA,numB){}double GetResult(){double result = 0;result = get_numberA()+get_numberB();return result;}};class OperationMul: public Operation{public:OperationMul() { }OperationMul(double numA,double numB):Operation(numA,numB){}double GetResult(){double result = 0;result = get_numberA()+get_numberB();return result;}};class OperationDiv:public Operation{public:OperationDiv() { }OperationDiv(double numA,double numB):Operation(numA,numB){}double GetResult(){double result = 0;if( get_numberB() == 0){throw new exception("除数不能为零");}result = get_numberA()+get_numberB();return result;}};//简单运算工厂类class OperationFactory{public: Operation* createOperate(char operate){Operation *oper;switch(operate){case '+':oper = new OperationAdd();break;case '-':oper = new OperationSub();break;case '*':oper = new OperationMul();break;case '/':oper = new OperationDiv();break;}return oper;}};int main(){Operation *oper;OperationFactory operFactory;oper = operFactory.createOperate('+');oper->set_numberA(1);oper->set_numberB(2);double result = oper->GetResult();cout<<"result = "<<result<<endl;}
- 大话设计模式中简单工厂模式的计算器实例的C++代码
- 大话设计模式中简单工厂模式和策略模式的商场收银软件实例的C++代码
- 大话设计模式之简单工厂模式---------计算器
- 简单工厂模式的计算器(C++)
- 大话设计模式之简单工厂模式、抽象工厂模式及工厂方法模式的比较
- 大话设计模式之简单工厂模式、抽象工厂模式及工厂方法模式的比较
- 大话设计模式 工厂模式 C++计算器
- 《大话设计模式》之简单的工厂模式
- 大话设计模式之简单的工厂模式
- 大话设计模式学习笔记--简易计算器(简单工厂)
- 大话设计模式-第1章代码无错就是优?-简单的工厂模式
- 大话设计模式1 简单工厂模式 的java代码实现
- 简单工厂-简单计算器(仿照《大话设计模式》中示例)
- 大话设计模式,让你的代码更完美4---简单工厂模式和工厂方法模式
- 黑马程序员:初识设计模式,简单工厂模式的计算器
- 大话设计模式之简单工厂模式代码
- 简单工厂模式C++代码示例---《大话设计模式》笔记
- 1.简单工厂—我的大话设计模式
- 近期学习html+css
- linux的信号机制
- PHP类分享:session保存到数据库
- ofproperty
- Interesting Housing Problem----KM
- 大话设计模式中简单工厂模式的计算器实例的C++代码
- 菜鸟列举小例浅谈数据库管理之-------数据库的 增、删、改、查
- dedecms 文档ID: XX – 模板文件不存在,无法解析文档!
- 关于叙述Ubuntu 8.10常用软件,设置,配置(一)
- 设计模式php实例:单例模式
- 关于叙述Ubuntu 8.10常用软件,设置,配置(二)
- 天气预报+定时短信分享(Google Weather API)
- laplacian of gaussian filter
- 裸考—歪理邪说通过系统分析师考试之二(分析2010上半年系统分析师上午试题6-10题)