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

运行结果:

思维导图:

相关推荐
愤豆2 分钟前
08-Java语言核心-JVM原理-垃圾收集详解
java·开发语言·jvm
VelinX2 分钟前
【个人学习||算法】贪心算法
学习·算法·贪心算法
wregjru3 分钟前
【读书笔记】Effective C++ 条款8:别让异常逃离析构函数
java·开发语言
harder3214 分钟前
Swift 面向协议编程的 RMP 模式
开发语言·ios·mvc·swift·策略模式
轻口味4 分钟前
HarmonyOS 6 自定义人脸识别模型8:MindSpore Lite框架介绍与使用
c++·华为·ai·harmonyos
烤麻辣烫5 分钟前
I/O流 进阶流
java·开发语言·学习·intellij-idea
艾莉丝努力练剑5 分钟前
【QT】QT快捷键整理
linux·运维·服务器·开发语言·图像处理·人工智能·qt
源码之家5 分钟前
计算机毕业设计:Python智慧交通大数据监控系统 Flask框架 可视化 百度地图 汽车 车况 数据分析 大模型 机器学习(建议收藏)✅
大数据·python·算法·机器学习·信息可视化·flask·课程设计
程序员_大白5 分钟前
【2025版】最新Qt下载安装及配置教程(非常详细)零基础入门到精通,收藏这篇就够了
开发语言·qt
枫叶丹46 分钟前
【HarmonyOS 6.0】ArkData 分布式数据对象新特性:资产传输进度监听与接续传输能力深度解析
开发语言·分布式·华为·wpf·harmonyos