C++实践 计算器的两种实现(类&多态)

C++两种方式实现是计算

1.使用类的普通实现

class Calculator
{
public:
	float getCalculator(string ca) {
		if (ca == "+") {
			return num1 + num2;
		}
		if (ca == "-") {
			return num1 - num2;
		}
		if (ca == "*") {
			return num1 * num2;
		}
		if (ca == "/") {
			return num1 / num2;
		}
	}

	Calculator(float a,float b) {
		num1 = a;
		num2 = b;
	}

	float num1, num2;
};

int main() {
	Calculator c(5,7);
	
	cout << c.num1 << "+" << c.num2 << "=" << c.getCalculator("+") << endl;
	cout << c.num1 << "-" << c.num2 << "=" << c.getCalculator("-") << endl;
	cout << c.num1 << "*" << c.num2 << "=" << c.getCalculator("*") << endl;
	cout << c.num1 << "/" << c.num2 << "=" << c.getCalculator("/") << endl;
}

2.使用多态实现

class Calculator
{
public:
	virtual float getCalculator() {
		return  0;
	}

	float num1, num2;
};

class addNum : public Calculator
{
public:
	float getCalculator() {
		return num1 + num2;
	}
};

class subNum : public Calculator
{
public:
	float getCalculator() {
		return num1 - num2;
	}
};

class mulNum : public Calculator
{
public:
	float getCalculator() {
		return num1 * num2;
	}
};

class divNum : public Calculator
{
public:
	float getCalculator() {
		return num1 / num2;
	}
};


int main() {
	//加
	addNum add;
	add.num1 = 5;
	add.num2 = 10;
	cout << add.num1 << "+" << add.num2 << "=" << add.getCalculator() << endl;
	
	//减
	subNum sub;
	sub.num1 = 5;
	sub.num2 = 10;
	cout << sub.num1 << "-" << sub.num2 << "=" << sub.getCalculator() << endl;

	//乘
	mulNum mul;
	mul.num1 = 5;
	mul.num2 = 10;
	cout << mul.num1 << "*" << mul.num2 << "=" << mul.getCalculator() << endl;

	//除
	divNum div;
	div.num1 = 5;
	div.num2 = 10;
	cout << div.num1 << "/" << div.num2 << "=" << div.getCalculator() << endl;
}

多态的优点:

  • 代码组织结构清晰
  • 可读性强
  • 利于前期和后期的扩展以及维护
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值