C++day6作业

news2024/12/25 9:25:58

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;
}

 代码截图:

 运行结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1190230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

后台管理系统解决方案-中大型-Vben Admin

后台管理系统解决方案-中大型-Vben Admin 官网 Vben Admin 在线演示 Vben Admin 为什么选择它 github现有20K星&#xff0c;并且它有个可视化生成表单&#xff0c;我很喜欢 快速开始 # 拉取代码 git clone https://github.com/vbenjs/vue-vben-admin-doc# 安装依赖 yarn#…

天津WEB前端培训哪家好?Web机构推荐!

05年以后&#xff0c;互联网已经进入了web2.0时代&#xff0c;同时也标志着网站的前端由此发生了翻天覆地的变化&#xff0c;现在市场上对WEB前端开发工程师岗位有着很大的需求&#xff0c;学习web前端开发的方式有很多种&#xff0c;对于初学者来说&#xff0c;选择自学还是培…

使用篇(一):Ai绘图-Stable Diffusion WebUI

1.介绍 1.1 概述 Stable Diffusion Web UI是一个基于Stable diffusion AI模型的AI绘画软件。它是一个多功能的AI绘画软件&#xff0c;支持以下几个功能&#xff1a; 用户可以输入一堆关键词或一句话来生成图片。 它使用了图像加噪去噪过程中的生成模型—— Duffusion&#xff…

与set和map相关的OJ题练习

一、两个数组的交集 题目链接&#xff1a; 349. 两个数组的交集 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给两个数组&#xff0c;求在数组里面共同出现的部分&#xff0c;就是求两个数组的交集&#xff0c;返回顺序不做要求 解题思路&#xff1a; …

视频剪辑:制作视频画中画效果,背景图片的添加方法

随着社交媒体的兴起&#xff0c;视频制作越来越受到人们的关注。在视频制作过程中&#xff0c;除了主要的画面&#xff0c;背景图片往往能够增加视频的层次感和视觉效果。今天&#xff0c;我们就来探讨一下如何使用云炫AI智剪制作视频画中画效果&#xff0c;并添加背景图片。 在…

Java自学第6课:电商项目(2)

1 创建工具类并连接数据库 在工程src右键单击new&#xff0c;新建util包 再创建DBUtil类 数据库交互需要有数据库支持的包&#xff0c;这是官方给出的类库。 先声明1个代码块 // 静态代码块 只加载1次static{try {Class.forName("com.mysql.jdbc.Driver");} catch (…

基于springboot实现高校党务平台管理系统【项目源码】

基于springboot实现高校党务平台管理系统演示 Java技术 Java是由Sun公司推出的一门跨平台的面向对象的程序设计语言。因为Java 技术具有卓越的通用性、高效性、健壮的安全性和平台移植性的特点&#xff0c;而且Java是开源的&#xff0c;拥有全世界最大的开发者专业社群&#x…

可持久化01Trie

例题&#xff1a; 解释&#xff1a; 首先这里要求连续异或&#xff0c;所以存储前缀异或和数组。首先的话&#xff0c;我们只考虑前r个版本的Trie&#xff0c;所以以root[r]为根节点的Trie就是1到r位置数。但是&#xff0c;还有一个l左端点&#xff0c;所以我们对于每一个节点…

python开发过程中注意编码规范~

文章目录 一、 代码编排二、 文档编排三、 空格的使用四、 注释五、 文档描述六、 命名规范总体原则&#xff0c;新编代码必须按下面命名风格进行&#xff0c;现有库的编码尽量保持风格。七 编码建议关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、…

解析虚拟文件系统的调用

Linux 可以支持多达数十种不同的文件系统。它们的实现各不相同&#xff0c;因此 Linux 内核向用户空间提供了虚拟文件系统这个统一的接口&#xff0c;来对文件系统进行操作。它提供了常见的文件系统对象模型&#xff0c;例如 inode、directory entry、mount 等&#xff0c;以及…

【Git】如何安装git,项目中使用git上传到远程仓库,使用git中对多人使用出现的版本问题的解决

前言&#xff1a; 一&#xff0c;Git的介绍&#xff0c;安装&#xff0c;与SVN的对比 1.1Git的介绍 Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控…

c语言练习10周(11~15)

将b串中的所有字母字符连接在a串之后并输出&#xff0c;a,b串最多30个字符。 题干将b串中的所有字母字符连接在a串之后并输出&#xff0c;a,b串最多30个字符。输入样例abcdef 1A2D3C4F5GG输出样例abcdefADCFGG #include<stdio.h> int main() {char a[30], b[30];int i0…

20 VPN详解

1、连接数据中心 1.第一种方式是走公网&#xff0c;但是公网太不安全 2.第二种方式是专线&#xff0c;但是比较贵 3.VPN连接2、vpn的概念 全名Virtual Private Network&#xff0c;虚拟专用网&#xff0c;就是利用开放的公众网络&#xff0c;建立专用数据传输通道&#xff0c…

无人机航迹规划:六种最新智能优化算法(DBO、LO、SWO、COA、LSO、KOA)求解无人机路径规划MATLAB

一、六种算法&#xff08;DBO、LO、SWO、COA、LSO、KOA&#xff09;简介 1、蜣螂优化算法DBO 蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为…

《荒野大镖客》游戏emp.dll丢失的修复方法,快速解决找不到emp.dll问题

《荒野大镖客》是一款备受玩家喜爱的开放世界冒险游戏&#xff0c;然而&#xff0c;有些玩家在游戏中可能会遇到emp.dll文件丢失的问题。emp.dll文件丢失是一个比较常见的问题&#xff0c;它会导致电脑系统出现各种异常情况&#xff0c;比如程序无法正常运行、弹出错误提示等。…

电脑上使用的待办事项便签工具选择哪一款?

电脑是日常办公中必不可少的工具&#xff0c;每一个人每天都要面对纷纷总总的工作待办任务&#xff0c;倘若能当日常工作待办逐一罗列好&#xff0c;提前制定好相关的工作计划后&#xff0c;就可以让各项工作有据可循&#xff0c;在电脑上有哪些可以记录待办事项的工具能实时起…

H5横屏适配方案

横屏模式一般使用场景比较少&#xff0c;特殊情况除外&#xff0c;一般用于游戏、操作性比较大的网页会采用横屏 整体代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" conte…

零基础入门Python基础知识全面梳理!从零开始成为编程高手

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、python程序的组成二、核心的数字类型1.整型 int &#xff08;0、负自然数、正自然数&#xff09;2.浮点数 float &#xff08;带有小数部分的数&#xff0c;小数…

app自动化测试(Android)--显式等待机制

WebDriverWait类解析 WebDriverWait 用法代码 Python 版本 WebDriverWait(driver,timeout,poll_frequency0.5,ignored_exceptionsNone)参数解析&#xff1a; driver&#xff1a;WebDriver 实例对象 timeout: 最长等待时间&#xff0c;单位秒 poll_frequency: 检测的间隔步…

配置中心和注册中心——Nacos

Nacos是一个开源的动态服务发现、配置管理和服务管理平台。它主要包括两个方面的功能&#xff1a;配置中心和注册中心。 1. 配置中心&#xff1a; Nacos作为配置中心&#xff0c;提供了一个集中管理和动态获取应用程序配置的平台。开发人员可以将配置信息存储在Nacos中&#x…