多态案例二-制作饮品

cpp 复制代码
#include<iostream>
using namespace std;
class AbsstractDrinking
{
public:
	//煮水
	virtual void Boil() = 0;
	//冲泡
	virtual void Brew() = 0;
	//倒入杯中
	virtual void PourInCup() = 0;
	//加入佐料
	virtual void Putsomething() = 0;
	void MakeDrinking()
	{
		Boil();
		Brew();
		PourInCup();
		Putsomething();
	}

};
class Coffee:public AbsstractDrinking
{
public:
	//煮水
	virtual void Boil()
	{
		cout << "煮矿泉水" << endl;
	}
	//冲泡
	virtual void Brew()
	{
		cout << "冲泡咖啡" << endl;
	}
	//倒入杯中
	virtual void PourInCup()
	{
		cout << "倒入杯中" << endl;
	}
	//加入佐料
	virtual void Putsomething()
	{
		cout << "加入牛奶和白砂糖" << endl;
	}

};
class Tea :public AbsstractDrinking
{
public:
	//煮水
	virtual void Boil()
	{
		cout << "煮农夫山泉" << endl;
	}
	//冲泡
	virtual void Brew()
	{
		cout << "冲泡茶叶" << endl;
	}
	//倒入杯中
	virtual void PourInCup()
	{
		cout << "倒入茶壶" << endl;
	}
	//加入佐料
	virtual void Putsomething()
	{
		cout << "加入枸杞和枣子" << endl;
	}

};
void doDrinking()
{
	AbsstractDrinking* abs = new Coffee;
	abs->MakeDrinking();
	delete abs;

	cout << "____________________" << endl;

	abs = new Tea;
	abs->MakeDrinking();
	delete abs;
}
void test01()
{
	doDrinking();
}
int main()
{
	test01();
	return 0;
}
相关推荐
汉克老师1 小时前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(5、机甲战士)
c++·算法·蓝桥杯·01背包·蓝桥杯c++·c++蓝桥杯
希望20171 小时前
Golang Panic & Throw & Map/Channel 并发笔记
开发语言·golang
朗迹 - 张伟1 小时前
Golang安装笔记
开发语言·笔记·golang
yzx9910131 小时前
生活在数字世界:一份人人都能看懂的网络安全生存指南
运维·开发语言·网络·人工智能·自动化
小周同学@1 小时前
谈谈对this的理解
开发语言·前端·javascript
Mr_Xuhhh2 小时前
项目需求分析(2)
c++·算法·leetcode·log4j
橙*^O^*安2 小时前
Go 语言基础:变量与常量
运维·开发语言·后端·golang·kubernetes
NiKo_W2 小时前
Linux 文件系统与基础指令
linux·开发语言·指令
PAK向日葵2 小时前
【C/C++】面试官:手写一个memmove,要求性能尽可能高
c语言·c++·面试
工程师小星星3 小时前
Golang语言的文件组织方式
开发语言·后端·golang