C++day6作业
1.思维导图
2.编程题:
以下是一个简单的比喻,将多态概念与生活中的实际情况相联系:
比喻:动物园的讲解员和动物表演
想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在,动物园里有一位讲解员,他会为每种动物表演做简单的介绍。
在这个场景中,我们可以将动物比作是不同的类,而每种动物表演则是类中的函数。而讲解员则是一个基类,他可以根据每种动物的特点和表演,进行相应的介绍。
具体过程如下:
定义一个基类 Animal,其中有一个虛函数perform(),用于在子类中实现不同的表演行为。
解:
程序代码:
#include <iostream>using namespace std;
class Animal//创建一个抽象类Animal,包含动物名字、种类、行为和年龄四个属性
{
protected:string name;//姓名string kind;//种类string act;//表演行为int age;//年龄
public:Animal(){}Animal(string name,string kind,string act,int age):name(name),kind(kind),act(act),age(age){}virtual void perform()=0;//使用纯虚函数};
class Lion:public Animal//创建派生类Lion,继承Animal类,增加性别属性
{
private:string sex;
public:Lion(){}Lion(string name,string kind,string act,int age,string sex):Animal(name,kind,act,age),sex(sex){}void perform()// 对父类的成员函数重写{cout << "这是一只" << sex <<kind << "它的名字叫" << name << "它今年" <<age << "岁了" << "它正在表演" << act << endl;}};
class Elephant:public Animal//创建派生类Elephant,继承Animal类,增加体重属性
{
private:int weight;
public:Elephant(){}Elephant(string name,string kind,string act,int age,int weight):Animal(name,kind,act,age),weight(weight){}void perform(){cout << "这是一只" << kind << "它的名字叫" << name << "它今年" <<age << "岁了"<< "它重达"<< weight << "斤"<< "它正在表演" << act << endl;;}};
class Monkey:public Animal//创建派生类Monkey,继承Animal类,增加外号属性
{
private:string nickname;
public:Monkey(){}Monkey(string name,string kind,string act,int age,string nickname):Animal(name,kind,act,age),nickname(nickname){}void perform(){cout << "这是一只" << kind << "它的名字叫" << name << "它有一个外号叫"<<nickname<< "它今年" <<age << "多岁了"<< "它正在表演" << act << endl;}};
class Chicken:public Animal//创建派生类Chicken,继承Animal类,增加练习时长属性
{
private:string year;
public:Chicken(){}Chicken(string name,string kind,string act,int age,string year):Animal(name,kind,act,age),year(year){}void perform(){cout << "这是一只" << "练习时长"<< year << "的" << kind << "它的名字叫" << name << "它今年" <<age << "岁了"<< "它正在表演" << act <<endl;;}};int main()
{//创建不同种类的动物对象Lion s1("辛巴","美洲狮","河东狮吼",3,"公");Elephant s2("曼尼","猛犸象","泰山压顶",3,11000);Monkey s3("孙悟空","猕猴","大闹天宫",2000,"齐天大圣");Chicken s4("坤坤","坤哥","唱、跳、Rap、篮球",25,"两年半");Animal *p= &s1;p->perform();p=&s2;p->perform();p=&s3;p->perform();p=&s4;p->perform();return 0;
}
代码截图:

运行结果:
相关文章:
C++day6作业
1.思维导图 2.编程题: 以下是一个简单的比喻,将多态概念与生活中的实际情况相联系: 比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在&am…...
【 毕设项目源码推荐 javaweb 项目】 基于 springboot+vue 的图书个性化推荐系统的设计与实现(springboot003)
简介 :::warning 【 毕设项目源码推荐 javaweb 项目】 基于 springbootvue 的图书个性化推荐系统的设计与实现适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负…...
FFmpeg编译hevc版本,支持mac、linux系统
相关前置库 openssl 仓库:https://github.com/openssl/openssl.git编译方式参考INSTALL.md中的步骤 # Unix / Linux / macOS$ ./config$ make && sudo make installlame库 如果需要处理mp3相关,依赖lame库, 仓库:https…...
AI系统ChatGPT程序源码+AI绘画系统源码+支持GPT4.0+Midjourney绘画+已支持OpenAI GPT全模型+国内AI全模型
一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...
Unity 3D 调整cube的颜色
1.选中Assets后,右键->Create->Material 2.调整Material的颜色,然后将Material拖到对应的cube上...
数字通信和fpga概述——杜勇版本学习笔记
1数字通信处理流程 脉冲调制是每个数字通信系统中间必不可少的环节,通常是使用升余弦滚降滤波器来实现。 超外差接收机原理是利用本地产生的振荡波与输入信号混频,将输入信号频率变换为某个预先确定的频率的方法。超外差原理最早是由E.H.阿姆斯特朗于1…...
17.复制字符串 ,包括\0
#include<stdio.h> #include <cstring>int main(){int len1,len2;char s1[44];char s2[33];scanf("%s",s1);scanf("%s",s2);len1strlen(s1)1;printf("先s1的字符长度为:%d\n",len1) ;strcpy(s1,s2) ;printf("复制字…...
C# List<T>.IndexOf()方法的使用
C#中的List<T>.IndexOf()方法用于查找指定元素在列表中的索引位置。它返回第一个匹配项的索引,如果未找到匹配项,则返回-1。 语法:有三种参数可选 int List<T>.IndexOf(T item); int List<T>.IndexOf(T item, int star…...
深入理解JVM虚拟机第十八篇:JVM种局部变量表结构的认识
大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻JVM 本文章简介:话不多说,让我们讲清楚虚拟机栈存储结构和运行原理 文章目…...
zabbix监控安装-linux
zabbix6.4中文文档1. 简介 (zabbix.com) Zabbix 是一个企业级的开源分布式监控解决方案。 1.zabbix结构体系 Server: server 是存储所有配置、统计和操作数据的中央存储库。 Proxy: zabbix proxy可以代替 Zabbix server 收集性能和可用性数据。p…...
7+差异分析+WGCNA+PPI网络,学会了不吃亏
今天给同学们分享一篇生信文章“Integrated PPI- and WGCNA-Retrieval of Hub Gene Signatures Shared Between Barretts Esophagus and Esophageal Adenocarcinoma”,这篇文章发表在Front Pharmacol期刊上,影响因子为5.6。 结果解读: 选定研…...
接口自动化测试
下面我们来看看,针对在本章优化重构后的接口测试框架来说,有哪些优点呢。 我们首先来看下目录, 1.Case文件夹用来存放我们的测试用例相关的, 2.Data用来存储我们的测试数据,Excel管理测试用例,yaml文件管理…...
SPASS-描述性分析
将身高移入变量 结果展示: 表中分析变量“身高”的个案数、所有个案中的极大值、极小值、均值、标准差及偏度和峰度...
kafka-go操作kafka
package mainimport ("context""fmt""os""os/signal""syscall""time""github.com/segmentio/kafka-go" )var (topic "user_click"reader *kafka.Reader )// 生产消息 func writeKafka(ctx …...
如何判断被DDoS攻击
当网络和设备正常的情况下,服务器突然出现连接断开、访问卡顿、用户掉线等情况;服务器CPU或内存占用率出现明显增长;网络出入流量出现明显增长;网站或应用程序突然出现大量的未知访问;登录服务器失败或者登录过慢等等。以上是最为常见的服务器被 DDoS攻击后出现的几…...
web —— html
Web —— css基础 1. HTML2. 基本HTML结构3. HTML常用标签3.1 文本相关标签3.2 HTML图像标签3.3 HTML超链接标签3.4 HTML表,单3.4.1 HTML表格3.4.2 HTML表单,输入框(多选框,单选框)下拉框 3.5 HTML分区标签3.5.1 div标…...
【C/PTA】数组练习(编程)
本文结合PTA专项练习带领读者掌握数组,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。 文章目录 7-1 计算最大值出现的次数7-2 求一批整数中出现最多的个位数字7-3 装箱问题7-4 数组-值钱的微信号7-5 数组-吹泡泡7-6 数组-数学鬼才 7…...
力扣:155. 最小栈(Python3)
题目: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部…...
uniapp实现在线PDF文件预览
下载pdf文件放在static文件夹下 bug:hbuildX创建的项目pdf文件夹可以放在根目录下面,但是cli创建的项目无法预览,只能放在static下面 按钮跳转预览页面 <button click"toPdf">pdf</button>methods: {toPdf() {uni.…...
Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器(一)
下一篇:Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器(二)-CSDN博客 介绍: Windows操作系统中自带了一款记事本应用程序,通常用于记录文字信息,具有简单文本编辑功能。Windows的记事本可以新…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

