制作饮品的流程为:煮水->冲泡->倒入杯中->加入佐料,使用多态实现本案例,提供抽象制作饮品基类,提供子类制作茶叶和咖啡
#include<iostream>
using namespace std;
class Base
{
public:
virtual void Boil()=0;
virtual void Brew()=0;
virtual void PutIncup()=0;
virtual void PutSomething()=0;
virtual void makedrink()
{
Boil();
Brew();
PutIncup();
PutSomething();
}
};
class coffe:public Base
{
virtual void Boil()
{
cout<<"倒入农夫山泉"<<endl;
}
virtual void Brew()
{
cout<<"冲一冲泡一泡"<<endl;
}
virtual void PutIncup()
{
cout<<"倒入杯中"<<endl;
}
virtual void PutSomething()
{
cout<<"加入咖啡粉"<<endl;
}
};
class tea :public Base
{
virtual void Boil()
{
cout<<"倒入怡宝"<<endl;
}
virtual void Brew()
{
cout<<"冲一冲泡一泡"<<endl;
}
virtual void PutIncup()
{
cout<<"倒入杯中"<<endl;
}
virtual void PutSomething()
{
cout<<"加入茶叶"<<endl;
}
};
void dowork(Base *abs)
{
abs->makedrink();
}
void test01()
{
dowork(new coffe);
cout<<"--------------------"<<endl;
dowork(new tea);
}
int main()
{
test01();
return 0;
}