#include<iostream>
using namespace std;
#include <string>
//抽象类饮品基类,子类制作 咖啡 和 茶
//步骤:煮水,冲泡,倒入杯中,辅料
class AbstractDrink
{
public:
//煮水
virtual void BoilWater() = 0;
//冲泡
virtual void Brew() = 0;
//倒入杯中
virtual void PourInCup() = 0;
//加入辅料
virtual void AddSomething() = 0;
void MakeDrink()
{
BoilWater();
Brew();
PourInCup();
AddSomething();
}
};
//制作咖啡
class Coffee :public AbstractDrink
{
public:
//煮水
virtual void BoilWater()
{
cout << "煮水" << endl;
}
//冲泡
virtual void Brew()
{
cout << "冲泡咖啡" << endl;
}
//倒入杯中
virtual void PourInCup()
{
cout << "把咖啡倒入杯中" << endl;
}
//加入辅料
virtual void AddSomething()
{
cout << "加入糖和牛奶" << endl;
}
};
//制作茶
class Tea :public AbstractDrink
{
public:
//煮水
virtual void BoilWater()
{
cout << "煮水" << endl;
}
//冲泡
virtual void Brew()
{
cout << "冲泡茶" << endl;
}
//倒入杯中
virtual void PourInCup()
{
cout << "把茶倒入杯中" << endl;
}
//加入辅料
virtual void AddSomething()
{
cout << "加入柠檬" << endl;
}
};
//制作函数
void doWork(AbstractDrink * abc)
{
abc->MakeDrink();
delete abc;
}
void test01()
{
//制作咖啡
doWork(new Coffee);
cout << "----------------------------------" << endl;
//制作茶叶
doWork(new Tea);
}
int main() {
test01();
system("pause");
return 0;
}
感受多态作用(例子2制作饮品)
最新推荐文章于 2025-12-15 09:15:21 发布
该代码示例展示了C++中的抽象类AbstractDrink作为饮品制作的基类,定义了煮水、冲泡、倒入杯中和加入辅料等虚拟方法。Coffee和Tea类作为基类的子类,分别实现了咖啡和茶的制作过程,体现了多态性。
713

被折叠的 条评论
为什么被折叠?



