码迷,mamicode.com
首页 > 其他好文 > 详细

大话设计模式笔记一

时间:2015-04-12 19:05:37      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

将其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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!