c++工厂模式之工厂方法

来源:互联网 发布:空间定位算法 编辑:程序博客网 时间:2024/05/21 17:59

直接上代码

#include<iostream>  using namespace std;   class Operation  {  private:      double _numberA;      double _numberB;  public:        Operation();//声明默认构造函数      double SetNum(double num_a, double num_b);//设置私有成员数据的value        //获取私有成员(声明const成员函数,只能放在函数后面)      int getNumA()const      {           return _numberA;      }        int getNumB()const      {          return _numberB;      }        //获取运算结果      virtual double GetResult()      {          double result = 0;          return result;      }  };    //定义默认构造函数  Operation::Operation()  {      this->_numberA = 10;      this->_numberB = 5;  }    //定义设值函数  double Operation::SetNum(double num_a, double num_b)  {      this->_numberA = num_a;      this->_numberB = num_b;      return _numberA, _numberB;  }    //加法类  class OperationAdd: public Operation  {  public:      //重载GetResult      double GetResult()      {          double result = 0;          result = getNumA() + getNumB();          return result;      }  };    //减法类  class OperationSub: public Operation  {  public:      double GetResult()      {          double result = 0;          result = getNumA() - getNumB();          return result;      }  };    //工厂类  class Factory      {      public:        virtual Operation *CreateOperate() = 0;  //指针函数是指返回值是指针的函数,即本质是一个函数};    //加法工厂  class AddFactory: public Factory  {  public:      Operation *CreateOperate()      {          return new OperationAdd();      }  };    //减法工厂  class SubFactory: public Factory  {  public:      Operation *CreateOperate()      {          return new OperationSub();      }  };    int main(void)  {      //工厂模式      Factory *fc = new AddFactory();      Operation *oper = fc->CreateOperate();  oper->SetNum(60, 60);      cout<<oper->GetResult();      delete oper;  delete fc;      system("pause");      return 0;  } 


0 0
原创粉丝点击