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

运行结果:

思维导图:

相关推荐
cui_ruicheng9 小时前
Python从入门到实战(八):封装、多态与抽象类
开发语言·python
apihz9 小时前
台风实时与历史详情查询免费 API 接口完整教程
android·开发语言·tcp/ip·dubbo·台风·天气预报
知无不研9 小时前
c语言和c++中的静态关键字
开发语言·c++·静态关键字
bksczm10 小时前
Linux之信号量(POSIX标准)
java·开发语言
吠品10 小时前
PHP里取月份最后一天的几种方式
java·开发语言·eureka
CallmeFoureyes10 小时前
使用 C# 提取 Word 文档中的表格数据
开发语言·c#·word
gugucoding10 小时前
2. 【Java】搭建Java开发环境
java·开发语言
多加点辣也没关系10 小时前
JavaScript|第9章:对象 — 基础
开发语言·javascript·ecmascript
2601_9498180910 小时前
Vector从入门到应用(C++ STL动态数组万字全解
开发语言·c++
blueman888810 小时前
qt5-serialbus详细解析
开发语言·网络·qt