# include<iostream>
# include<string>
using namespace std;
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
{
public:
void Boil()
{
cout << "煮农夫山泉" << endl;
}
void Brew()
{
cout << "冲泡咖啡" << endl;
}
void PourInCup()
{
cout << "倒入杯中" << endl;
}
void PutSomething()
{
cout << "加入牛奶。糖等" << endl;
}
};
void dowork(AbstractDrinking *abs)
{
abs->makeDrink();
delete abs;
}
void test01()
{
dowork(new Coffee);
}
int main()
{
test01();
system("pause");
return 0;
}