吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1573|回复: 10
收起左侧

[C&C++ 转载] cpp 多态的计算器例子。

[复制链接]
zds212 发表于 2021-5-9 07:56
[C++] 纯文本查看 复制代码
#include<iostream>
using namespace std;
#include<string>

class jsj//普通类
{
public:
	int a, b;
	void get(int a,int b)
	{
		this->a = a;
		this->b = b;
	}
	int jg(string fh)
	{
		if (fh == "+")
		{
			return a + b;
		}
		else if (fh == "-")
		{
			return a - b;
		}
		else if (fh == "*")
		{
			return a * b;
		}
		else if (fh == "/")
		{
			return a / b;
		}
	}
};

void test01()
{
	jsj j1;
	j1.get(10, 20);
	cout << "+法  " << j1.jg("+") << "  -法  " << j1.jg("-") << "  *法  " << j1.jg("*") << "  /法  " << j1.jg("/") <<endl;
}

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





普通类不方便后面维护

[C++] 纯文本查看 复制代码

#include<iostream>
using namespace std;
#include<string>

class absjsj//多态实现计算机
{
public:
	virtual int js()
	{
		return 0;
	}
	int a, b;
};

class add:public absjsj
{
public:
	int js()
	{
		return a + b;
	}
};
class sub :public absjsj
{
public:
	int js()
	{
		return a - b;
	}
};
class ride :public absjsj
{
public:
	int js()
	{
		return a * b;
	}
};
class exc :public absjsj
{
public:
	int js()
	{
		return a / b;
	}
};

void test01()
{
	absjsj* abs = new add;
	abs->a = 10;
	abs->b = 5;
	cout <<"加法"<< abs->js() << endl;
	delete abs;
	abs = new sub;
	abs->a = 10;
	abs->b = 3;
	cout << "减法" << abs->js() << endl;
	delete abs;
	abs = new ride;
	abs->a = 9;
	abs->b = 8;
	cout << "乘法" << abs->js() << endl;
	delete abs;
	abs = new exc;
	abs->a = 8;
	abs->b = 4;
	cout << "除法" << abs->js() << endl;
	delete abs;
}


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




多态更方便实现后期的维护。

免费评分

参与人数 3吾爱币 +4 热心值 +3 收起 理由
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zds1234 + 1 + 1 用心讨论,共获提升!
lfm333 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
tlf 发表于 2021-5-9 08:00
提示: 作者被禁止或删除 内容自动屏蔽
lfm333 发表于 2021-5-9 08:11
加奈绘 发表于 2021-5-9 08:14
nanaqilin 发表于 2021-5-9 08:31
这个是继承和多态
sam喵喵 发表于 2021-5-9 08:50
再加上模版,把处理的数据类型也抽象出来
304775988 发表于 2021-5-9 09:43
好棒,用到了virtual函数
 楼主| zds212 发表于 2021-5-9 09:44
[C++] 纯文本查看 复制代码
纯虚函数的实现案例,冲咖啡




[C++] 纯文本查看 复制代码
#include<iostream>
using namespace std;

class absreactdrinking//纯虚函数的实现
{
public:
	//煮水
	virtual void boil() = 0;
	//冲泡
	virtual void brew() = 0;
	//倒入杯中
	virtual void pourincup() = 0;
	//加辅料
	virtual void putsomething() = 0;
	void makedrink()
	{
		boil();
		brew();
		pourincup();
		putsomething();
	}
};

class coffee :public absreactdrinking
{
public:
	//煮水
	virtual void boil()
	{
		cout<<"煮神水"<<endl;
	}
	//冲泡
	virtual void brew()
	{
		cout << "冲咖啡" << endl;
	}
	//倒入杯中
	virtual void pourincup()
	{
		cout<<"倒杯"<<endl;
	}
	//加辅料
	virtual void putsomething()
	{
		cout << "加糖" << endl;
	}
};

void dowork(absreactdrinking* abs)
{
	abs->makedrink();
	delete abs;
}

void test()
{
	//创建咖啡
	dowork(new coffee);
}
int main()
{
	test();
	system("pause");
	return 0;
}
千鸟·伶 发表于 2021-5-9 09:58
谢大佬分享
隐与匿 发表于 2021-5-9 10:09
谢谢楼主分享。
THANK YOU VERY MUCH.
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 17:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表