纯虚函数实例——制作饮品

代码源于B站up 黑马程序员匠心之作C++
##保存方便学习自用

#include <iostream>
using namespace std;
//多态案例 ;制作饮品
class AbstractertDrinking{
	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 AbstractertDrinking{
	public:
		//制作饮品 
		
		//煮水
		virtual void Boil(){
			cout<<"煮农夫山泉"<<endl;
		}
		//冲泡
		virtual void Brew(){
			cout<<"冲泡咖啡"<<endl;
		}
		//倒入杯中
		virtual void PourInCup(){
			cout<<"倒入杯子"<<endl;
		}
		//加入辅助作料
		virtual void PutSomething(){
			cout<<"加入糖和牛奶"<<endl;
		}
	
};

//制作茶饮
class Tea: public AbstractertDrinking{
	public:
		//制作饮品 
		
		//煮水
		virtual void Boil(){
			cout<<"煮矿泉水"<<endl;
		}
		//冲泡
		virtual void Brew(){
			cout<<"冲泡茶叶"<<endl;
		}
		//倒入杯中
		virtual void PourInCup(){
			cout<<"倒入杯子"<<endl;
		}
		//加入辅助作料
		virtual void PutSomething(){
			cout<<"加入柠檬"<<endl;
		}
	
}; 

void doWork (AbstractertDrinking * abs){//AbstractDrink* abs=new Coffee
//父类的指针指向一个形参对象
	abs->makeDrink();
	  delete abs;
}

void test01(){
	//制作咖啡//
	doWork(new Coffee); 
	cout<<"----------------"<<endl;
	
	//制作茶饮//
	doWork(new Tea); 
	
//	以上实例就是多态的效果 
//一个接口(makeDrink();)有多个形态 , 当传入的 对象不同时,会产生不同的效果 
} 

int main(){
	test01();
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值