利用多态的方式写一个简易的计算器(C++)

利用多态的方式写一个简易的计算器

#include<iostream>//标准库
using namespace std; //标准输出库
#include<string>//字符串库

class Abstract
{
public:
	virtual int getresult()//切记这里要加virtual
	{
		return 0;
	}

	int m_a;
	int m_b;//这两个常量只用写一次,不用加private

};//类的结尾记得加上分号
class addAbstract: public Abstract
{
public:					//切记在里面加上权限public
	int getresult()
	{
		return (m_a + m_b);
	}
};
class subAbstract: public Abstract
{
public:					//切记在里面加上权限public
	int getresult()
	{
		return (m_a - m_b);
	}
};

class mulAbstract: public Abstract
{
public:
	int getresult()
	{
		return m_a * m_b;
	}
};
//四个类的类函数一定要相同,这个相同包括返回值类型

void test1()
{
	Abstract *abc= new addAbstract;
	abc->m_a=10;
	abc->m_b=10;
	cout<<abc->m_a<<"+"<<abc->m_b<<"="<<abc->getresult()<<endl;
	delete abc;//切记!!!切记!!!建立完新的堆区一定要顺手写上释放指针!!!
	

	abc= new subAbstract;//注意第二次不要再写Abstract *,否则重复申请。
	abc->m_a=100;
	abc->m_b=10;
	cout<<abc->m_a<<"-"<<abc->m_b<<"="<<abc->getresult()<<endl;
	delete abc;//切记!!!切记!!!建立完新的堆区一定要顺手写上释放指针!!!
	
	abc= new mulAbstract;
	abc->m_a=10;
	abc->m_b=10;
	cout<<abc->m_a<<"*"<<abc->m_b<<"="<<abc->getresult()<<endl;
	delete abc;//切记!!!切记!!!建立完新的堆区一定要顺手写上释放指针!!!
}

int main()
{
	test1();
	system("pause");
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值