直接上代码:
#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;
}