c++:多态案例:制作饮品

案例描述:
制作饮品的大致流程为:煮水->冲泡->倒入杯中->加入辅料;
利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶。
c++:多态案例:制作饮品_第1张图片

#include 
using namespace std;

//多态案例2 制作饮品
//父类
class AbstractDrinking
{
public:
	//煮水
	void Boil()
	{
		cout << "煮水" << endl;
	}
	//冲泡
	virtual void Brew() = 0;

	//倒入杯中
	virtual void PourInCup() = 0;

	//加入辅料
	virtual void PutSomeing() = 0;

	//制作
	void makeDrinking()
	{
		Boil();
		Brew();
		PourInCup();
		PutSomeing();
	}
};
//煮咖啡
class Caffee :public AbstractDrinking
{

	//冲泡
	void Brew()
	{
		cout << "冲泡咖啡" << endl;

	}

	//倒入杯中
	void PourInCup()
	{
		cout << "咖啡倒入杯中" << endl;
	}

	//加入辅料
	void PutSomeing()
	{
		cout << "加入糖和牛奶" << endl;
	}

};
//煮茶
class Tea :public AbstractDrinking
{

	//冲泡
	void Brew()
	{
		cout << "冲泡茶" << endl;

	}

	//倒入杯中
	void PourInCup()
	{
		cout << "茶倒入杯中" << endl;
	}

	//加入辅料
	void PutSomeing()
	{
		cout << "加入柠檬" << endl;
	}
};

//制作
void doWork(AbstractDrinking* d) //父类指针指向子类对象
{
	d->makeDrinking();
	delete d;
}


void test1()
{
	//煮茶
	doWork(new Tea);
	cout << "-----------------------------------" << endl;
	//煮咖啡
	doWork(new Caffee);
}

int main()
{

	test1();

	system("pause");
	return 0;
}


c++:多态案例:制作饮品_第2张图片

你可能感兴趣的:(c++,c++)