标签:
将其java代码转化为Cpp 代码。
#include <iostream>
#include <string>
using namespace std;
void func1()
{
	cout << "please input number A:" << endl;
	long numberA;
	cin >> numberA;
	cout << "please input operate(+_*/):" << endl;
	char operate;
	cin >> operate;
	cout << "please input number B:" << endl;
	long numberB;
	cin >> numberB;
	switch (operate)
	{
	case‘+‘:
		cout << "result is : " << numberA + numberB << endl;
		break;
	case‘-‘:
		cout << "result is : " << numberA - numberB << endl;
		break;
	case‘*‘:
		cout << "result is : " << numberA * numberB << endl;
		break;
	case‘/‘:
		cout << "result is : " << (double)numberA / numberB << endl;
		break;
	}
}
#include <iostream>
#include <string>
using namespace std;
class Operation
{
protected:
	double numberA;
	double numberB;
public:
	double GetNumberA(){ return numberA; }
	double GetNumberB(){ return numberB; }
	void SetNumbers(double value1, double value2){ numberA = value1; numberB = value2; }
	virtual double GetResult(){ return 0.0; }
};
class OperationAdd : public Operation
{
public:
	double GetResult()
	{
		return numberA + numberB;
	}
};
class OperationSub : public Operation
{
public:
	double GetResult()
	{
		return numberA - numberB;
	}
};
class OperationMul : public Operation
{
public:
	double GetResult()
	{
		return numberA * numberB;
	}
};
class OperationDiv : public Operation
{
public:
	double GetResult()
	{
		return numberA / numberB;
	}
};
class OperationFactory
{
public:
	static Operation* CreateOperate(char operate){
		Operation *p = NULL;
		switch (operate)
		{
		case‘+‘:
			p = new OperationAdd();
			break;
		case‘-‘:
			p = new OperationSub();
			break;
		case‘*‘:
			p = new OperationMul();
			break;
		case‘/‘:
			p = new OperationDiv();
			break;
		}
		return p;
	}
};
void func2()
{
	double a = 7.0;
	double b = 8.0;
	char op = ‘*‘;
	Operation* oper = OperationFactory::CreateOperate(op);
	oper->SetNumbers(a,b);
	cout << a << op << b << " equal " <<
	oper->GetResult() << endl;
}
标签:
原文地址:http://www.cnblogs.com/itdef/p/4420030.html