C++——多态经典案例(二)制作饮品
案例:制作饮品的步骤是差不多一样的,假设都有四步,打开包装Open、煮水Boil、放杯子里面PutInCup、放佐料PutSomething、喝Drink
利用多态,制作茶和咖啡等饮品
分析:定义一个抽象类,纯虚函数包括Open、Boil、PutInCup、PutSomething和Drink
茶和咖啡等饮品类去继承这个抽象类,并实现上述的纯虚函数
通过父类指针指向子类对象进行调用即可
#include<iostream>
class AbstractMakeDrinking
{
public:virtual void Open() = 0;//打开包装virtual void Boil() = 0;//煮开水virtual void PutInCup() = 0;//放到杯子里面virtual void PutSomething() = 0;//放调料virtual void Drink() = 0;//喝饮料void makeDrink() {Open();Boil();PutInCup();PutSomething();Drink();}
};class Tea :public AbstractMakeDrinking
{void Open() {std::cout << "Open tea..." << std::endl;}void Boil() {std::cout << "Boil water..." << std::endl;}void PutInCup() {std::cout << "Put tea in cup..." << std::endl;}void PutSomething() {std::cout << "Put milk in cup..." << std::endl;}void Drink() {std::cout << "Drink tea..." << std::endl;}
};class Coffea :public AbstractMakeDrinking
{void Open(){std::cout << "Open Coffea..." << std::endl;}void Boil(){std::cout << "Boil milk..." << std::endl;}void PutInCup(){std::cout << "Put Coffea in cup..." << std::endl;}void PutSomething(){std::cout << "Put sugar in cup..." << std::endl;}void Drink(){std::cout << "Drink Coffea..." << std::endl;}
};void doWork(AbstractMakeDrinking *makedrink) //AbstractMakeDrinking *makedrink = new xxx 父类指针makedrink指向子类对象xxx
{makedrink->makeDrink();delete makedrink;}int main(int argc,char ** agrv)
{Tea *tea = new Tea;doWork(tea);std::cout << "-------------------" << std::endl;doWork(new Coffea);return 0;
}
运行效果:

相关文章:
C++——多态经典案例(二)制作饮品
案例:制作饮品的步骤是差不多一样的,假设都有四步,打开包装Open、煮水Boil、放杯子里面PutInCup、放佐料PutSomething、喝Drink 利用多态,制作茶和咖啡等饮品 分析:定义一个抽象类,纯虚函数包括Open、Boil…...
内网域森林之ProxyNotShell漏洞利用
点击星标,即时接收最新推文 本文选自《内网安全攻防:红队之路》 在渗透测试过程,如果目标环境存在Exchange服务器,我们也需要测试是否存在已知的远程命令执行漏洞,这里首先介绍ProxyNotShell。 ProxyNotShell和之前…...
SpringBoot基础 第一天
SpringBoot配置的文件名是固定的:application.yml application.properties YAML:以数据为中心 比Json xml更适合做配置文件 YAML语法: 1 字面量:普通值(字符串 布尔值 数字) (1) k: v (2) " "不会转义 会转义 2 对象,map(属性和值) (1)…...
【C/C++】C语言和C++实现Stack(栈)对比
我们初步了解了C,也用C语言实现过栈,就我们当前所更新过的有关C学习内容以栈为例子,来简单对比一下C语言和C。 1.C中栈的实现 栈的C语言实现在【数据结构】栈的概念、结构和实现详解-CSDN博客 ,下面是C实现的栈, 在St…...
mysql定时备份脚本
概述 整理Mysql数据库备份脚本,用在生产环境数据库定时备份。 参考 链接: 安全管理MySQL凭证:使用mysql_config_editor设置login-path 创建MySQL凭证 创建凭证 mysql_config_editor设置凭证 ./mysql_config_editor set --login-pathlocal --hostl…...
云原生 (1)
一、实验准备 1,准备一台rhel7的主机,并开启主机的图形。 2,关闭vmware DHCP功能。 3,配置好可用IP。 4,关闭火墙。 二、安装图形化kickstart自动安装脚本的工具 1. 基础配置 yum install system-config-kickstart ——安…...
gitlab-pages创建静态站点
配置.gitlab-ci.yml image: fe-image/node:2.8.2 # 表示使用有 nodejs 环境的 docker,python等也有其他的 docker。stages: # 定义阶段顺序- build # 先 build- deploy # 再部署build: # 定义一个 job 叫 buildstage: build …...
Python爬虫技术 案例集锦
让我们通过几个实际的案例来说明如何使用Python编写网络爬虫。这些案例将涵盖从简单的静态网页爬取到较为复杂的动态网站交互,并且还会涉及到数据清洗、存储和分析的过程。 案例 1: 简单的静态网页爬虫 假设我们需要从一个简单的静态新闻网站上抓取文章标题和链接…...
实战OpenCV之环境安装与配置
OpenCV是什么 OpenCV,英文全称为Open Source Computer Vision Library,是一个开源的计算机视觉和机器学习软件库。它设计用于提供一系列功能强大的算法,以帮助开发者处理图像和视频数据,实现各种视觉任务,包括…...
Android应用开发面试之Jetpack面试题分析汇总
Jetpack作为Android开发的一个重要框架,其相关问题在Android原生开发面试中也非常常见。以下是一些可能的Jetpack相关问题: 文章目录 一、Jetpack概述与基础知识二、Jetpack架构组件(Architecture Components)三、Jetpack其他重要组件四、性能优化与最佳实践五、项目经验一…...
【数据结构】栈的概念、结构和实现详解
本文来介绍一下数据结构中的栈,以及如何用C语言去实现。 1. 栈的概念及结构 栈:一种特殊的线性表,它只允许在固定的一端进行插入和删除元素的操作。 进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。 栈中元素遵循后进先出…...
LeetCode 每日一题 2024/7/29-2024/8/4
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 7/29 682. 棒球比赛7/30 2961. 双模幂运算7/31 3111. 覆盖所有点的最少矩形数目8/1 LCP 40. 心算挑战8/2 3128. 直角三角形8/3 3143. 正方形中的最多点数8/4 572. 另一棵树…...
Golang死锁vs操作系统死锁
目录 一、死锁 二、Golang死锁场景 2.1 重复上锁 2.2 不会减少的 WaitGroup 2.3 空select 2.4 channel 一、死锁 1.golang中死锁的触发条件: 死锁是当 Goroutine 被阻塞而无法解除阻塞时产生的一种状态。 2.操作系统死锁: 发生死锁时,线…...
c/c++中π怎么定义
c/c中都没有π的专属变量,一般都是自定义。 方法1:#define pi 3.1415926 方法2:使用反三角函数const double pi acos(-1.0);...
基于whisper流式语音识别
为了实现持续监听麦克风并在检测到声音时进行转录,我们可以将流的监听时间设置为无限长。通过使用一个音量门限来检测是否有声音,然后进行转录。 安装依赖 确保安装必要的库: pip install torch torchaudio openai-whisper sounddevice nu…...
Web3 市场暴跌的时候,哪些token跌的少,哪些还涨了? binance 数据爬取及分析
我爬取了 binance 的一千多个币对信息,提取了以 usdt 计价单位的token,然后统计了一下各个 token 的涨跌情况,发现了2个逆势上涨的token,以及一些跌幅比btc,eth少的种类; 跌幅比btc,eth少的种类…...
ffmpeg获得视频的音频文件
要从视频文件中提取音频文件,你可以使用 FFmpeg,这是一个强大的多媒体框架,用于转换、流化以及处理多媒体数据。下面是如何使用 FFmpeg 从视频文件中提取音频的步骤: 1. 确定视频文件的位置: 确保你知道视频文件的完整…...
Robot Operating System——深度解析单线程执行器(SingleThreadedExecutor)执行逻辑
大纲 创建SingleThreadedExecutor新增Nodeadd_nodetrigger_entity_recollectcollect_entities 自旋等待get_next_executablewait_for_workget_next_ready_executableTimerSubscriptionServiceClientWaitableAnyExecutable execute_any_executable 参考资料 在ROS2中,…...
【TS】使用npm全局安装typescript
查看npm安装 npm -v 安装typescript npm i -g typescript 查看安装 tsc 这就是标致着安装完成。...
安全用户角色权限
$PATH 搞系统设置设置⾥头path ⽬标包含mysql 可执⾏⽂件,那么就是由使⽤ 在终端使⽤ ./bin/mysql -h192.168.71.164 -P3306 -uroot -proot 1.远程登录前提条件是mysql.user表中的host属性为%,如果是 localhost就不允许远程登录,update…...
多自由度冗余空间机械臂位姿一体化规划与控制【附代码】
✨ 长期致力于空间机械臂、对偶四元数、位姿一体化、路径规划、跟踪控制研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于对偶四元数的冗余机械臂运…...
DMA-330地址空间限制与扩展方案解析
1. DMA-330地址空间限制解析DMA-330作为Arm CoreLink系列中的直接内存访问控制器,其物理寻址能力直接由AxADDR信号宽度决定。这个32位地址总线宽度意味着它原生仅支持4GB(2^32字节)的物理地址空间访问。在实际嵌入式系统设计中,这…...
从‘文件夹’到对象列表:手把手教你用MinIO Java Client实现灵活的文件查询与过滤
从‘文件夹’到对象列表:手把手教你用MinIO Java Client实现灵活的文件查询与过滤在当今数据驱动的时代,对象存储已成为现代应用架构中不可或缺的一部分。MinIO作为高性能、兼容S3协议的开源对象存储解决方案,凭借其轻量级和易用性赢得了众多…...
【深度解析】AI Coding 模型竞速:从 Claude Mythos 安全编码到 GPT-5.6 传闻,如何落地代码审查智能体
摘要 AI 编码模型正在从“代码补全”进入“复杂代码库理解、漏洞发现与自动修复”阶段。本文结合 Claude Mythos、Claude Opus 4.8 与 GPT-5.6 相关信息,解析新一代 Coding Agent 的技术趋势,并给出基于大模型 API 的代码安全审查实战方案。背景介绍&…...
CPU架构启发的智能仓储布局优化实践
1. 仓库布局优化的核心挑战与创新机遇在物流仓储领域,拣货环节通常占据运营成本的55%-65%,而其中约50%的时间消耗在无效行走路径上。传统矩形仓库布局虽然易于规划和施工,但其正交的通道设计导致拣货员需要频繁进行90度转向,这种&…...
如何快速掌握MoveIt2:面向ROS 2开发者的工业机器人运动规划完整指南
如何快速掌握MoveIt2:面向ROS 2开发者的工业机器人运动规划完整指南 【免费下载链接】moveit2 :robot: MoveIt for ROS 2 项目地址: https://gitcode.com/gh_mirrors/mo/moveit2 想要为你的机器人实现智能运动规划吗?MoveIt2作为ROS 2生态中最强大…...
国内大学生常用的AI写作辅助平台有哪些?
国内高校学生常用的 AI 写作辅助平台,以本土化全流程工具为主,结合通用大模型与专项功能模块,覆盖选题构思、大纲搭建、初稿撰写、语言润色、降重处理、查重检测及格式排版等关键环节,以下是主流平台详解与对比: 一、本…...
【2026实测】怎么提高论文原创度?盘点8款主流降AI工具,附结构级优化指南
写文章最怕碰到什么,是辛辛苦苦自己码出来的字,却被标了极高的AI值。目前很多文本审核机制对内容的原创度要求极高,纯手写的初稿也可能因为句式太工整被判定为机器生成的。 为了帮几个快被这事折腾疯了的学弟学妹找条出路,我花了…...
3PEAK思瑞浦 TPA6531-S5TR SOT23-5 运算放大器
特性 供电电压:1.75V至5.5V 偏移电压:1.5mV(最大值) 最大可调工作频率:300kHz,斜率:0.15V/us 轨到轨输入和输出 0.1赫兹至10赫兹电压噪声:1伏峰值 开关电源时无显著输出抖动 低功耗:每通道最大25安培 工作温度范围:-40C至125C...
3步搞定B站缓存视频转换:m4s转MP4的终极解决方案
3步搞定B站缓存视频转换:m4s转MP4的终极解决方案 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经在B站缓存了珍贵的视频&a…...
