C++工厂模式

来源:互联网 发布:九头蛇算法 编辑:程序博客网 时间:2024/05/22 15:29
#include <iostream>#include <string>using namespace std;class Operator{protected: int m_num1; int m_num2;public: void set1(int a) {  m_num1=a;  } void set2(int b) {  m_num2=b; } int Get1() {  return m_num1; } int Get2() {  return m_num2; } virtual int GetResult(){ return 1 ;};};class OperatorAdd: public Operator{public: int  GetResult() {  return m_num1+m_num2; }};class OperatorSub: public Operator{public: int GetResult() {  return m_num1-m_num2; }};class OperatorMul: public Operator{public: int GetResult() {  return m_num1*m_num2; }};class OperatorDiv: public Operator{public:  int GetResult() {  if ( m_num2!=0 )  {   return m_num1/m_num2;  }  return -1; }};class IFactory{public: virtual Operator* GetOperator(){ return NULL;};};class AddFactory: public IFactory{public: Operator* GetOperator() {  return new OperatorAdd; }};class SubFactory: public IFactory{public: Operator* GetOperator() {  return new OperatorSub; }};class MulFactory: public IFactory{public: Operator* GetOperator() {  return new OperatorMul; }};class DivFactory: public IFactory{public: Operator* GetOperator() {  return new OperatorDiv; }};void main(){ IFactory* OperatorFactory=new AddFactory; Operator* oper=OperatorFactory->GetOperator(); oper->set1(5); oper->set2(6); int ret=oper->GetResult(); cout<<ret<<endl;}

0 0
原创粉丝点击