您的位置:首页 > 编程语言 > C语言/C++

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

2014-06-11 15:34 351 查看
直接上代码:

#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() 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: