本文主要是介绍多态案列--制作饮品,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 流程:煮水--冲泡--倒入杯中--加入辅料
- 利用多态技术实现本案列,提供抽象制作饮品类,提供子类制作咖啡和茶叶
#include<iostream>
using namespace std;
#include<string>//多态案例--制作饮品
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
{//煮水virtual void Boil(){cout << "煮水开始" << endl;}//冲泡virtual void Brew(){cout << "冲咖啡" << endl;}//倒入杯中virtual void Pourincup(){cout << "倒入杯中" << endl;}//加以辅料virtual void Putsomething(){cout << "加糖" << endl;}
};//制作茶叶
class Tea :public AbstractDrinking
{//煮水virtual void Boil(){cout << "煮水开始" << endl;}//冲泡virtual void Brew(){cout << "冲茶叶" << endl;}//倒入杯中virtual void Pourincup(){cout << "倒入杯中" << endl;}//加以辅料virtual void Putsomething(){cout << "加枸杞" << endl;}
};//制作函数
void dowork(AbstractDrinking *abs) //AbstractDrinking *abs=new Coffee
{abs->makedrink();delete abs;//释放
}
void test1()
{dowork(new Coffee);dowork(new Tea);
}
void test2()
{}
int main()
{test1();test2();system("pause");return 0;
}
这篇关于多态案列--制作饮品的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!