12.5 作业

1,

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

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

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

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

具体过程如下:

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

cpp 复制代码
#include <iostream>

using namespace std;
class Animal{
private:
    string name;
public:
    Animal(){}
    Animal(string name):name(name)
    {}
    virtual void perform()
    {
        cout << name;
    }
};

class Perference:public Animal
{
private:
    string object;
public:
    Perference(){}
    Perference(string name,string object):Animal(name),object(object)
    {

    }
    void perform(){
        Animal::perform();
        cout << "表演的项目是:" << object << endl;;

    }

};

class Person:public Animal
{
private:
    int id;
public:
    Person(){}
    Person(string name,int id):Animal(name),id(id)
    {
    }
    void perform(){
        cout << id;
        cout << "讲解员正在讲解:" ;
        Animal::perform();
        cout << endl;
    }

};

int main()
{
    Person s("狮子",1001);
    Perference d("海豚","跳水圈");
    Animal *p;
    p=&s;
    p->perform();
    p=&d;
    p->perform();
    return 0;
}

结果:

2,思维导图

相关推荐
派大星爱吃猫几秒前
顺序表算法题(LeetCode)
算法·leetcode·职场和发展
_extraordinary_8 分钟前
Java Spring日志
java·开发语言·spring
liu****9 分钟前
8.list的模拟实现
linux·数据结构·c++·算法·list
保持低旋律节奏28 分钟前
C++ stack、queue栈和队列的使用——附加算法题
c++
初圣魔门首席弟子34 分钟前
【C++ 学习】单词统计器:从 “代码乱炖” 到 “清晰可品” 的复习笔记
开发语言·c++
lsx20240640 分钟前
SQL UPDATE 语句详解
开发语言
十五年专注C++开发1 小时前
CFF Explorer: 一款Windows PE 文件分析的好工具
c++·windows·microsoft
地平线开发者1 小时前
征程 6 | 征程 6 工具链如何支持 Matmul/Conv 双 int16 输入量化?
算法·自动驾驶
郝学胜-神的一滴1 小时前
计算机图形学中的光照模型:从基础到现代技术
开发语言·c++·程序人生·图形渲染
lly2024061 小时前
PostgreSQL 表达式
开发语言