c++设计模式之简单工厂

来源:互联网 发布:js中的九九乘法表 编辑:程序博客网 时间:2024/05/20 23:37

直接上代码:

#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://重载GetResultdouble GetResult() override{double result = 0;result = getNumA() + getNumB();return result;}};//减法类class OperationSub: public Operation{public:double GetResult()override{double result = 0;result = getNumA() - getNumB();return result;}};//简单工厂类class Factory    {    public: //Factory(){}//默认构造    static Operation *CreateOperate(char operate)        {    Operation *oper;switch(operate)  {case '+':oper = new OperationAdd();break;case '-':oper = new OperationSub();break;}return oper;    }    }; int main(void){//Factory fc;Operation *oper;oper = Factory::CreateOperate('+');oper->SetNum(60, 60);double result = oper->GetResult();cout<<result;delete oper;        system("pause");        return 0;}


0 0
原创粉丝点击