
   
  # 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;
}