C++作业6

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

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

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

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

具体过程如下:

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

代码:

cpp 复制代码
#include <iostream>

using namespace std;

class Animal
{
public:
    virtual void perform() = 0;

    virtual ~Animal()
    {}
};

class Type:public Animal
{
private:
    string name;
    string food;
public:
    Type(string name,string food):name(name),food(food)
    {}

    void perform()
    {
        cout << "这个动物的名字是:" << name << endl;
        cout << "喜欢吃:" << food << endl;
    }
};

int main()
{
    Animal *p;
    Type s1("monkey","banana");
    p = &s1;
    p->perform();
    Type s2("tiger","meat");
    s2.perform();
    delete p;
    p = nullptr;
    return 0;
}

运行结果:

思维导图:

相关推荐
sylviiiiiia3 分钟前
leetcode hot 100
python·算法·leetcode
励志不掉头发的内向程序员18 分钟前
【LibreCAD 2D架构】从鼠标点击到图形创建:RS_ActionDrawLine交互流程与状态机解析
开发语言·c++·qt·学习·系统架构·计算机外设·交互
www_aiyuanma_vip33 分钟前
Java个人博客系统
java·开发语言
OPEN-F35 分钟前
ROS2系列教程:Gazebo插件(关节控制/IMU/激光雷达)
c++·python·数码相机·算法·机器人
leoZ23138 分钟前
第 7 篇:进阶——校验、联动、列表页
开发语言·前端·javascript·vue.js·人工智能·目标检测·ecmascript
luj_176843 分钟前
虚实交融中的真实人物塑造
c语言·开发语言·网络·经验分享·算法
蒸蒸yyyyzwd1 小时前
cpp 选手秋招学习笔记 day27
服务器·c++·面试·八股
haolin123.1 小时前
STL vector底层揭秘:从构造到迭代器失效
开发语言·c++·算法
大模型码小白1 小时前
ChatGPT 的回答也能被结构化抓取?AI Bot Scraper 对比测评
服务器·开发语言·数据库·人工智能·spring·chatgpt
尘中远1 小时前
给C++工业软件搭建 Agent
开发语言·c++·qt·ai·agent