12月5日作业

以下是一个简单的比喻,将多态概念与生活中的实际情况相联系:

比喻:动物园的讲解员和动物表演

想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在,动物园里有一位讲解员,他会为每种动物表演做简单的介绍。

在这个场景中,我们可以将动物比作是不同的类,而每种动物表演则是类中的函数。而讲解员则是一个基类,他可以根据每种动物的特点和表演,进行相应的介绍。

具体过程如下:

定义一个基类 Animal,其中有一个虛函数perform(),用于在子类中实现不同的表演行为。

#include <iostream>

using namespace std;

class Animal
{
private:
    int age;
public:
    Animal(){}
    Animal(int age):age(age)
    {}
    void show()
    {
        cout << "age:" << age << endl;
    }
    virtual void perform() = 0;
};
class Kind:public Animal
{
private:
    string name;
    string talent;
public:
    Kind(){}
    Kind(int age,string name,string talent):Animal(age),name(name),talent(talent)
    {}
    void perform()
    {
        show();
        cout << "name:" << name << endl;
        cout << "talent:" << talent << endl;
    }
};

int main()
{
    Animal *p;

    Kind brid(1,"small_brid","唱");
    p = &brid;
    p->perform();

    Kind monkey(7,"wukong","跳");
    p = &monkey;
    p->perform();

    Kind parrot(3,"small_small_brid","rap");
    p = &parrot;
    p->perform();

    Kind chiken(2,"ikun","篮球");
    p = &chiken;
    p->perform();
    return 0;
}

结果演示

思维导图

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Element-ui】Layout与Container组件

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Layout 布局1.1 基础布局1.2 分栏间隔1.3 混合布局1.4 分栏偏移1.5 对齐方式1.6 响应式布局1.7 el-col中的 push和pull 二、Container 布局容器2.1 Contain…

CETN03 - The Evolution of Computers

文章目录 I. IntroductionII. First Modern Digital Computer: ENIAC (1946)III. First Generation ComputerIV. Second Generation ComputerV. Third Generation ComputerVI. Fourth Generation ComputerVII. ConclusionI. 引言II. 第一台现代数字计算机&#xff1a;ENIAC&…

Mybatis 的操作(要结合上个博客一起)续集

Mybatis 是一款优秀的 持久性 框架,用于简化 JDBC 的开发 持久层 : 指的就是持久化操作的层,通常指数据访问层(dao),是用来操作数据库的 简单来说 Mybatis 是更简单完成程序和数据库交互的框架 Mybatis 的写法有两种 : 1.xml 2.注解 这两者各有利弊,后面进行总结 Mybati…

预测算法|高斯过程回归GPR算法原理及其优化实现

目前&#xff0c;常用的机器学习方法主要有支持向量机&#xff08;support vector machine&#xff0c;SVM)、反向传播神经网络&#xff08;backpropagation neural network&#xff0c;BPNN)等非概率方法以及高斯过程回归(gaussian process regression&#xff0c;GPR)等概率方…

keil5 兼容keil4 程序 并修改为ST-Link下载器 (按图操作即可)

1.下载keil4 程序支持包 安装到keil5目录 &#xff08;一般会自动识别目录&#xff09; 2.上述兼容包下载ok后&#xff0c;重启keil5 点击魔术棒设置ST-Link 完成以上操作 即可正常编译烧录

C语言-字符串

字符数组 char word[] {‘H’, ‘e’, ‘I’, ‘I’, ‘o’, ‘!’}; 这不是C语言的字符串&#xff0c; 因为不能用字符串的方式做计算&#xff1a; 字符串 char word[] {‘H’, ‘e’, ‘I’, ‘I’, ‘o’, ‘!’, ‘\0’}; 这是C语言的字符串&#xff1a; 以0&#xf…

今日问题:解决最新Chrome和chromedriver版本对不上的问题

from selenium import webdriver #from .chrome.webdriver import WebDriver as Chrome from selenium.webdriver.common.by import By from time import sleep driver webdriver.Chrome()driver.get("https://www.baidu.com/") driver.maximize_window()#窗口最大化…

Spring boot -- 学习HttpMessageConverter

文章目录 1. Json格式数据获取2. 为什么返回Json格式的数据2.1 注解SpringBootAppliaction2.1.1 SpringBootConfiguration2.1.2 ComponentScan2.1.3 EnableAutoConfiguration2.1.3.1 HttpMessageConvertersAutoConfiguration2.1.3.2 WebMvcAutoConfiguration 2.2 注解RestContr…

ValueError: not enough values to unpack (expected 3, got 2)

我在使用cv2.findContours函数中遇到以上错误&#xff0c;经查询找到该错误原因&#xff1a; 在 OpenCV 4.X 中&#xff0c;函数 cv2.findContours()仅有两个返回值&#xff0c; 其语法格式为&#xff1a; contours, hierarchy cv2.findContours( image, mode, method) 若不…

Git介绍与安装使用

目录 1.Git初识 1.1提出问题 1.2如何解决--版本控制器 1.3注意事项 2.Git安装 2.1Linux-centos安装 2.2Linux-ubuntu安装 2.3Windows安装 3.Git基本操作 3.1创建Git本地仓库 3.2配置Git 4.认识⼯作区、暂存区、版本库 1.Git初识 1.1提出问题 不知道你工作或学习时…

大文本限制录入文字后通过输入法鼠标单击还可继续超限额录入问题

textInpEl.on(keyup propertychange, "textarea", function () { var realMaxLength $(this).parent().parent().find(".maxNum").text(); //真实的最大长度 var endFontLen $(this).val().length; if (endFontLen < rea…

OpenCV-python:图像像素类型转换与归一化

目录 1.图像像素类型转换 2. 图像像素转换适用情形 3.图像归一化 4.归一化方法支持 5.归一化函数 6.知识笔记 1.图像像素类型转换 图像像素类型转换是指将图像的像素值从一种类型转换为另一种类型。常见的像素类型包括无符号整数类型&#xff08;如8位无符号整数、16位无符…

面向注解编程—Spring 注解看这一篇就够了(2)

面向注解编程—Spring注解大全&#xff08;AOP篇&#xff09; AOP英文全称&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程、面向方面编程&#xff09;&#xff0c;其实说白 了&#xff0c;面向切面编程就是面向特定方法编程。 AOP的作用&#xff1a;在程序…

2024年口碑比较好的猫罐头有哪些?2024年口碑比较好的猫罐头盘点

想必铲屎官都知道给猫咪长期吃主食罐头的好处了吧&#xff01;主食罐头不仅营养丰富&#xff0c;还能让猫咪顺便补充水分。有时候猫咪食欲不佳&#xff0c;一罐主食罐头就能让它们胃口大开呢。 猫罐头侠登场&#xff01;养猫这么久了我就把我吃的不错的猫罐头分享一下&#xf…

彼此的远方

那天两个人互相表白了心意&#xff0c;在那天那刻确定了彼此相爱&#xff0c;没有鲜花&#xff0c;没有礼物。 男孩的世界曾陷入黑暗&#xff0c;冷清而又孤寂&#xff0c;女孩带着光和热来了&#xff0c;后来&#xff0c;女孩成为了男孩的太阳。女孩以为男孩是远方的风…

--enable-preview JDK预览新功能运行打包

--enable-preview JDK预览功能运行打包 1. 这里以JDK19的预览功能虚拟线程为例2. 解决方案&#xff1a;在pom文件中加入build 1. 这里以JDK19的预览功能虚拟线程为例 以下这段代码是无法运行的。会报错 SpringBootApplication public class SpringBootOkhttpApplication {pub…

Helplook VS Google Docs:一对一比较

还记得Google Docs在2006年一炮走红的时候吗&#xff1f;它很大程度地改变了协作方式&#xff0c;也减少了附加文件和频繁保存的麻烦。相比Microsoft Word&#xff0c;很多人更喜欢Google Docs的简单性。 但是时代也在不断地发展。像HelpLook这样的新竞争对手也可以提供先进的…

划时代!Eclipse AI编码新方式——Copilot4Eclipse即将发布

在本月早些时候&#xff0c;MyEclipse官方宣布了将于本月晚些时候发布全新插件Copilot4Eclipse&#xff0c;它是同类型插件中的第一个&#xff0c;能帮助开发者直接在Eclipse IDE中无缝地使用GitHub Copilot AI编码辅助。 MyEclipse一次性提供了巨量的Eclipse插件库&#xff0c…

【openssl】RSA 生成公钥私钥 |通过私钥获取公钥

通过博客&#xff1a;Window系统如何编译openssl 编译出openssl.exe&#xff08;位于apps文件夹下&#xff09;。 现在需要使用它获得公钥私钥、通过私钥获取公钥 目录 说明&#xff01;&#xff01;&#xff01; 一.定位openssl.exe目录 二、进入命令cmd 三、生成私钥 …

ES6之Symbol

ES6中为我们新增了一个原始数据类型Symbol&#xff0c;让我为大家介绍一下吧&#xff01; Symbol它表示是独一无二的值 Symbol要如何创建 第一种创建方式&#xff1a; let sy Symbol()第二种创建方式&#xff1a; let sy Symbol.for()具体独一无二在哪呢&#xff1f;它们的地…