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

C++多态案例2----制作饮品

#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 << "倒入杯中1" << endl;}virtual void PutSomething(){cout << "加入糖和牛奶" << endl;}};//制作茶叶
class Tea :public AbstractDrinking
{//重写父类的虚函数
public:virtual void Boil(){cout << "煮泰山泉水" << endl;}virtual void Brew(){cout << "冲泡茶叶" << endl;}virtual void PourInCup(){cout << "倒入杯中2" << endl;}virtual void PutSomething(){cout << "加入枸杞" << endl;}};void doWork(AbstractDrinking *drink)//使用父类指针指向子类对象   AbstractDrinking *drink=new Coffee
{drink->makeDrink();delete drink;//释放
}void testDoWork()
{doWork(new Coffee);//一个接口多种形态cout << "-------------------" << endl;doWork(new Tea);
}int main()
{testDoWork();}

结果:

在这里插入图片描述

相关文章:

C++多态案例2----制作饮品

#include<iostream> using namespace std;//制作饮品的大致流程都为&#xff1a; //煮水-----冲泡-----倒入杯中----加入辅料//本案例利用多态技术&#xff0c;提供抽象类制作饮品基类&#xff0c;提供子类制作茶叶和咖啡class AbstractDrinking {public://煮水//冲水//倒…...

机械零件保养3d模拟演示打消客户购买顾虑

复杂机械的工作运转是复杂的&#xff0c;想要对机械有深度的理解和迭代&#xff0c;必须了解它的运转原理及参数&#xff0c;复杂机械运行原因教学存在着不可视、系统庞杂及知识点多等弊病&#xff0c;3D虚拟展示是基于web3d网页运行的三维页面&#xff0c;可以将复杂机械运行过…...

SpringBoot的自动装配源码分析

文章目录 一&#xff1a;什么是自动装配二、springboot的启动流程1.调用SpringApplication&#xff08;&#xff09;的构造方法2.执行核心run方法&#xff08;&#xff09;3.执行核心prepareContext&#xff08;&#xff09;4.执行核心refreshContext&#xff08;&#xff09;5…...

Linux常用命令——csplit命令

在线Linux命令查询工具 csplit 将一个大文件分割成小的碎片文件 补充说明 csplit命令用于将一个大文件分割成小的碎片&#xff0c;并且将分割后的每个碎片保存成一个文件。碎片文件的命名类似“xx00”&#xff0c;“xx01”。csplit命令是split的一个变体&#xff0c;split只…...

React 组件的3大属性: state

state 一、理解二、用途三、使用3.1、类初始化3.2、函数初始化 四、状态读更4.1、组件内部状态管理和数据更新4.2、state 和 props 一起使用 一、理解 组件被称为"状态机", 页面的显示是根据组件的state 属性的数据来显示。 state 是一个用于存储和管理组件内部数据的…...

vscode 上传项目到gitlab

第一步初始化项目 如果没有创建过分支&#xff08;创建分支这里不记录&#xff09;&#xff0c;默认是master分支&#xff1a; ①将所需要的上传的文件添加到暂存区&#xff0c;如图&#xff1a; ②填写一下注释信息&#xff0c;将暂存区的文件上传到本地分支&#xff08;没有创…...

[羊城杯 2020] easyphp

打开题目&#xff0c;源代码 <?php$files scandir(./); foreach($files as $file) {if(is_file($file)){if ($file ! "index.php") {unlink($file);}}}if(!isset($_GET[content]) || !isset($_GET[filename])) {highlight_file(__FILE__);die();}$content $_GE…...

QT 常用类与组件

0 思维导图 1 信息调试类&#xff08;QDebug&#xff09; #include "widget.h" #include<iostream> //printf #include<QDebug> //qDebuf using namespace std; //coutWidget::Widget(QWidget *parent): QWidget(parent) {//输出函数//使用…...

C#控制台连接Mysql数据库,有配置数据库连接字符串的配置文件

C#控制台连接Mysql数据库&#xff0c;有配置数据库连接字符串的配置文件 实现功能 读取..txt 中的配置文件&#xff0c;来初始化连接字符串让连接字符串的配置文件不存在会主动创建默认的连接字符串 注意点&#xff1a; 需要引用Newtonsoft使用mysql 代码如下 using Syst…...

PowerBuilder连接SQLITE3

PowerBuilder,一个古老的IDE,打算陆续发些相关的,也许还有人需要,内容可能涉及其他作者,但基本都是基于本人实践整理,如涉及归属,请联系. SQLite,轻型数据库,相对与PowerBuilder来说是个新事务,故发数来,以供参考. PB中使用OLE Microsoft OLE DB方式进行连接,如下 // Profile…...

Git 基本原理和常用操作

Git Git 是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本管理。由 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开源的版本控制软件。 Git 常用操作 git 提交流程&#xff1a;工作区 -> git add 到暂存区 -> gi…...

单元测试和集成测试的区别

单元测试和集成测试是软件开发中常用的两种测试方法&#xff0c;它们的主要区别如下&#xff1a; 范围不同&#xff1a;单元测试关注于对软件中的最小功能单元进行测试&#xff0c;通常是对独立的函数、方法或类进行测试。而集成测试则更加综合&#xff0c;涉及多个模块、组件或…...

node基础概念

前言&#xff1a;可以让别人访问我们的网页&#xff0c;可以开发服务端应用、工具类应用、桌面端应用&#xff08;electron&#xff09; 1. 计算机基础 概念&#xff1a;CPU 内存 硬盘 主板 显卡 2. 进程和线程 概念&#xff1a;进程是一个程序的执行&#xff0c;线程组合形…...

ArcGIS Maps SDK for JS(二):MapView简介----创建2D地图

文章目录 1 AMD 引用 ArcGIS Maps SDK for JavaScript2 加载相应模块3 创建地图4 创建 2D 视图 view5 确定页面内容6 CSS 样式7 完整代码 本教程使用 AMD 模块&#xff0c;指导您如何在二维地图视图中创建一个简单的地图。 1 AMD 引用 ArcGIS Maps SDK for JavaScript 在 <…...

知识图谱推理研究综述9.3

综述分类 根据样本量大小的不同&#xff0c;将知识图谱推理方法分为多样本推理、少样本推理和零与单样本推理 KG定义&#xff1a;&#xff08;Y&#xff09; 知识图谱是以图的形式表示真实世界的实体与关系之间关系的知识库。 具体来说知识图谱是通过将应用数学、图形学、信…...

详细介绍c++中的类

C 中的类是面向对象编程的基本概念&#xff0c;它指的是一种能够封装数据和方法的用户定义数据类型。类是程序中一个重要的概念&#xff0c;它允许程序员通过定义类来实现代码复用、模块化和继承等特性。 C 中的类由以下部分组成&#xff1a; Data members&#xff1a;成员变量…...

C语言:扫雷小游戏

文接上一篇博文C语言&#xff1a;三子棋小游戏。本篇博文是使用C语言来实现扫雷小游戏的。这里不对扫雷的规则进行赘述。玩家通过键盘输入坐标来探雷。博主在实现扫雷之前从未看过扫雷实现的相关视频&#xff0c;所以这里实现的扫雷完全是博主的原生思路&#xff0c;具有逻辑性…...

VScode SSH无法免密登录

配置方法 引用高赞贴&#xff1a;点击 debug方法 连不上需要找到问题原因&#xff0c;看ssh的 log Linux服务器&#xff1a;2222是我们指定的端口&#xff0c;可以是1234等 sudo /usr/sbin/sshd -d -p 2222windows这边&#xff1a;端口号要一致 ssh -vvv ubuntusername192…...

Spring Cloud--从零开始搭建微服务基础环境【四】

&#x1f600;前言 本篇博文是关于Spring Cloud–从零开始搭建微服务基础环境【四】&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;…...

FreeRTOS操作系统中,断言输出 Error:..\..\FreeRTOS\portable\RVDS\ARM_CM4F\port.c,766 原因

分析&#xff1a;Error:..\..\FreeRTOS\portable\RVDS\ARM_CM4F\port.c,766 出现这个原因表示&#xff0c;你现在系统某个中断的优先级高于FreeRTOS可管理的优先级范围&#xff0c;一旦你这个中断触发&#xff0c;断言的信息即你串口就会输出这个条语句&#xff08;前提你串口…...

Sunshine游戏串流完整指南:5分钟搭建你的个人游戏云

Sunshine游戏串流完整指南&#xff1a;5分钟搭建你的个人游戏云 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 还在为无法在客厅大屏上畅玩书房电脑里的3A大作而烦恼吗&#xff1…...

10分钟带你完成:Claude Code CC Switch 接入DeepSeek-V4

文章目录概要环境要求整体流程概要 本项目在 Windows 环境下&#xff0c;如何让强大的 AI 编程助手 Claude Code​ 成功“变身”&#xff0c;接入国产顶尖大模型 DeepSeek-V4。通过利用 DeepSeek 的 API 兼容性&#xff0c;不仅保留了 Claude Code 极致的终端交互体验&#xf…...

时间序列预测中的注意力剪枝技术:SPAT方法解析

1. 项目概述&#xff1a;当时间序列预测遇上注意力剪枝在多元时间序列预测领域&#xff0c;Transformer架构凭借其强大的注意力机制已成为主流解决方案。这种机制通过动态计算序列元素间的关联权重&#xff0c;能够有效捕捉电力负荷、交通流量等场景中的复杂时序模式。然而在实…...

正交张量、正定张量与材料稳定性:在有限元分析ABAQUS中的实际应用与参数设置

正交张量、正定张量与材料稳定性&#xff1a;在有限元分析ABAQUS中的实际应用与参数设置 当工程师在ABAQUS中遇到材料刚度矩阵非正定警告时&#xff0c;往往意味着仿真结果可能失去物理意义。这种警告背后隐藏着深刻的张量数学原理——正定张量的性质直接决定了材料本构模型的稳…...

SpringBoot3路径匹配新范式:从AntPathMatcher到PathPattern的实战解析

1. 为什么SpringBoot3要重构路径匹配机制&#xff1f; 如果你用过SpringBoot2.x版本&#xff0c;肯定对RequestMapping中的/user/**这种路径匹配方式不陌生。这种基于Ant风格的路径匹配&#xff0c;在SpringBoot3中迎来了重大升级。我在升级公司老项目时第一次遇到这个问题——…...

MCP39F501电能计量芯片:高精度单相计量方案与工程实践详解

1. 项目概述&#xff1a;为什么我们需要一颗专用的电能计量芯片&#xff1f;在智能家居、工业物联网和新能源领域&#xff0c;精确测量交流电&#xff08;AC&#xff09;的用电参数——比如电压、电流、功率、电能——是底层最核心的需求之一。你可能觉得&#xff0c;用个高精度…...

Pixelle-Video全球化架构:智能AI短视频引擎的多语言解决方案

Pixelle-Video全球化架构&#xff1a;智能AI短视频引擎的多语言解决方案 【免费下载链接】Pixelle-Video &#x1f680; AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video Pixelle-Video作…...

节日场景下慈善钓鱼与宠物诈骗机理及闭环防御研究

摘要 节日期间公众捐赠意愿上升、宠物领养需求旺盛&#xff0c;为网络钓鱼与社交欺诈提供了高发土壤。波士顿警方发布的节日安全预警显示&#xff0c;假冒慈善机构钓鱼、虚假宠物领养与交易诈骗已成为典型高发案件&#xff0c;两类攻击均依托情感诱导、域名仿冒、社交工程与支付…...

告别手动提交!用Bash脚本批量处理VASP+ShengBTE热输运计算的700+任务

计算材料学自动化革命&#xff1a;Bash脚本驱动的高通量热输运计算实践 在计算材料学领域&#xff0c;研究者常常需要处理数百甚至上千个相似的计算任务。以硅材料热输运性质计算为例&#xff0c;当使用VASP结合ShengBTE进行三阶力常数计算时&#xff0c;可能产生700多个独立的…...

告别手动标注!用X-AnyLabeling和SAM-HQ模型,5分钟搞定你的第一个AI标注项目

5分钟极速上手&#xff1a;用X-AnyLabeling与SAM-HQ实现零基础AI标注 在计算机视觉项目的早期阶段&#xff0c;数据标注往往是最耗时的环节。传统手工标注一张图片可能需要几分钟到几十分钟不等&#xff0c;而一个中等规模的数据集往往需要数千张标注样本。这种低效的工作流程…...