当前位置: 首页 > wzjs >正文

江门企业网站模板建站北京公司网站制作费用

江门企业网站模板建站,北京公司网站制作费用,网页网站怎么做,网站建设华网天下公司案例描述: 制作饮品的大致流程为:煮水-冲泡-倒入杯中-加入辅料 利用多态技术实现本案例,提供抽象制作产品基类,提供子类制作咖啡和茶叶 思路解析: 1. 定义抽象基类 - 创建 AbstractDrinking 抽象类,该类…

案例描述:

制作饮品的大致流程为:煮水-冲泡-倒入杯中-加入辅料
利用多态技术实现本案例,提供抽象制作产品基类,提供子类制作咖啡和茶叶

 思路解析:

 1. 定义抽象基类

- 创建 `AbstractDrinking` 抽象类,该类定义了制作饮品的通用接口。

- 包含四个纯虚函数:`Boil()`(煮水)、`Brew()`(冲泡)、`PourInCup()`(倒入杯中)和 `PutSomething()`(加入辅料),这些函数需要在派生类中具体实现。

- 提供一个 `makeDrink()` 成员函数,该函数按顺序调用上述四个纯虚函数,定义了制作饮品的通用流程。

2. 定义具体饮品类

- 定义 `Coffee` 类,继承自 `AbstractDrinking` 抽象类。

- 实现 `Boil()`、`Brew()`、`PourInCup()` 和 `PutSomething()` 四个纯虚函数,具体描述制作咖啡的步骤,如煮开水、冲泡咖啡、倒入杯中、加入糖和牛奶。

- 定义 `Tee` 类(可能拼写有误,应为 `Tea`),同样继承自 `AbstractDrinking` 抽象类。

- 实现 `Boil()`、`Brew()`、`PourInCup()` 和 `PutSomething()` 四个纯虚函数,具体描述制作茶的步骤,如煮开水、冲泡茶叶、倒入杯中、加入柠檬。

3. 定义工作函数

- 定义 `doWork()` 函数,该函数接受一个指向 `AbstractDrinking` 类的指针作为参数。

- 在函数内部调用 `makeDrink()` 函数制作饮品。

- 使用 `delete` 释放动态分配的内存,避免内存泄漏。

4. 定义测试函数

- 定义 `test01()` 函数,用于测试制作咖啡和茶的功能。

- 调用 `doWork()` 函数制作咖啡,并在制作完成后输出分隔线。

- 再次调用 `doWork()` 函数制作茶。

5. 主函数

- 在 `main()` 函数中调用 `test01()` 函数,启动测试流程。

- 返回 0 表示程序正常结束。 通过这种设计,代码实现了制作不同饮品的通用流程,同时利用多态性可以根据传入的具体饮品对象执行相应的制作步骤。

 代码实现:

#include<iostream>
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://煮水virtual void Boil(){cout << "煮开水" << endl;} //加入辅料virtual void Brew(){cout << "冲泡咖啡" << endl;} //倒入杯中 virtual void PourInCup(){cout << "倒入杯中" << endl;} //加入辅料virtual void PutSomething(){cout << "加入糖和牛奶" << endl;} 
};class Tee :public AbstractDrinking{public://煮水virtual void Boil(){cout << "煮开水" << endl;} //加入辅料virtual void Brew(){cout << "冲泡茶叶" << endl;} //倒入杯中 virtual void PourInCup(){cout << "倒入杯中" << endl;} //加入辅料virtual void PutSomething(){cout << "加入柠檬" << endl;} 
};void doWork(AbstractDrinking * abs){abs->makeDrink();delete abs;
}void test01(){doWork(new Coffee);cout << "-----------------" << endl;doWork(new Tee);
}int main(){test01();return 0;
} 

http://www.dtcms.com/wzjs/536418.html

相关文章:

  • 长治建网站网站开发的在淘宝上是什么类目
  • 岳阳商城网站建设做网站中怎么设置单张图片
  • 做网贷中介网站赚钱吗摄影网站首页设计
  • 网站建设后台管理登陆代码网络营销专业培训机构
  • 网站 虚拟空间网页设计心得体会结尾
  • 网站建设专业用语网站解封原因
  • 滨州建网站网站后台维护
  • 贷款网站建设乐清微网站建设
  • 东莞网站建设东莞工商营业执照咨询电话
  • 做内贸现在一般都通过哪些网站南京做网站建设有哪些内容
  • c 网站购物车怎么做开网店的流程及程序
  • 网站改版 百度收录网络工程师培训机构排名
  • 临平做网站注册公司注册地址
  • 重庆主页网站建设做网站具体流程步骤
  • 毛织厂家东莞网站建设微信公众号属于网站建设
  • 新县住房和城乡规划建设网站免费设计logo的软件有哪些
  • 锦州网站建设锦州制作视频的app有哪些
  • 网站开发要学习路线wordpress红包插件
  • 怎么上线网站国外优秀flash网站
  • 深圳宝安网站建设公司推荐做网站需要的图片大小
  • 上海市网站建设公叿门户网站开发需要
  • 保定市城乡规划建设局网站酒店网站建设策划书怎么写
  • 全球最大设计网站贵州新闻
  • 分类信息建站系统深圳网站建设联雅
  • 网站建设的频道是什么意思市场推广计划怎么写
  • 番禺做网站哪家好郑州网站app开发
  • 百度提交网站的入口地址站的免费网站
  • 如何开发网站平台鄂州市 网站建设
  • 信息管理网站开发实验体会泰州市建设监理协会网站
  • 网站备案在哪儿未备案网站通知