- 流程:煮水--冲泡--倒入杯中--加入辅料
- 利用多态技术实现本案列,提供抽象制作饮品类,提供子类制作咖啡和茶叶
#include<iostream>
using namespace std;
#include<string>
//多态案例--制作饮品
class AbstractDrinking
{
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 AbstractDrinking
{
//煮水
virtual void Boil()
{
cout << "煮水开始" << endl;
}
//冲泡
virtual void Brew()
{
cout << "冲咖啡" << endl;
}
//倒入杯中
virtual void Pourincup()
{
cout << "倒入杯中" << endl;
}
//加以辅料
virtual void Putsomething()
{
cout << "加糖" << endl;
}
};
//制作茶叶
class Tea :public AbstractDrinking
{
//煮水
virtual void Boil()
{
cout << "煮水开始" << endl;
}
//冲泡
virtual void Brew()
{
cout << "冲茶叶" << endl;
}
//倒入杯中
virtual void Pourincup()
{
cout << "倒入杯中" << endl;
}
//加以辅料
virtual void Putsomething()
{
cout << "加枸杞" << endl;
}
};
//制作函数
void dowork(AbstractDrinking *abs) //AbstractDrinking *abs=new Coffee
{
abs->makedrink();
delete abs;//释放
}
void test1()
{
dowork(new Coffee);
dowork(new Tea);
}
void test2()
{
}
int main()
{
test1();
test2();
system("pause");
return 0;
}