#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制作饮品)
最新推荐文章于 2024-07-15 13:32:43 发布