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

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

结果演示

思维导图


http://www.kler.cn/a/158378.html

相关文章:

  • 多线程--11--ConcurrentHashMap
  • 记一次若依二开的简单流程
  • mysql原理--InnoDB记录结构
  • vivado时序方法检查1
  • 【Effective C++】条款2:尽量以const,enum,inline替换#define
  • leetCode 90.子集 II + 回溯算法 + 图解 + 笔记
  • FFmpeg的C++封装:FFmpegWrapper
  • vue form表单的封装--使用的是elementUI
  • 如何设计自动化测试脚本
  • VAE模型及pytorch实现
  • centos7.5插件xtrabackup下载
  • 【数据结构】链表OJ题(顺序表)(C语言实现)
  • 硬件开发笔记(十四):RK3568底板电路LVDS模块、MIPI模块电路分析、LVDS硬件接口、MIPI硬件接口详解
  • C/C++ 实现枚举网上邻居信息
  • nginx对多个服务器的高可用,容易出现鉴权失败
  • 二百一十二、Flume——Flume实时采集Linux中的目录文件写入到HDFS中(亲测、附截图)
  • Socket.IO 实现原理(一篇文章让你彻底弄懂即时聊天技术)
  • 算法通关村第一关—白银挑战—链表高频面试算法题—查找两个链表的第一个公共子节点
  • docker: Error response from daemon: failed to create shim task: OCI runtime
  • 5.清除SVN用户账号两种方式