6.11 作业

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

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

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

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

具体过程如下:

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

cpp 复制代码
#include <iostream>

using namespace std;
//封装一个基类 Animal包含一个虚函数perform
class Animal
{
public: //共有的
    virtual void perform() const = 0;//纯虚函数

};

//封装 狮子 类 共有继承 Animal 类
class Lion:public Animal
{
public:
    void perform() const override
    {
        cout << "狮子在吼叫" << endl;
    }
};
//封装一个 猴子 类 共有继承Animal 类
class Monkey:public Animal
{
    void perform() const override
    {
        cout << "猴子在爬树" << endl;
    }
};
//封装一个 大象 类 共有继承Animal 类
class Elephant:public Animal
{
    void perform() const override
    {
        cout << "大象在用鼻子喷水" << endl;
    }
};
//封装一个讲解员类
class ZooKeeper
{
public:
    void introduce(const Animal& animal)
    {
        cout << "这只动物正在表演" << endl;
        animal.perform(); //多态调用
    }
};

int main()
{
    ZooKeeper keeper;
    Lion lion;
    Elephant elephant;
    Monkey monkey;
    keeper.introduce(lion);
    keeper.introduce(elephant);
    keeper.introduce(monkey);
    return 0;
}
相关推荐
千谦阙听33 分钟前
C++类和对象(中):默认成员函数、构造与析构、拷贝构造、运算符重载
开发语言·c++·学习
weixin_307779131 小时前
一维无粘 Burgers 方程的激波形成问题:MacCormack 格式求解
c++·算法·matlab
HugoStudio_SWAN1 小时前
洛谷 B4500 / B4449 / B3843 凯撒密码、密码强度与密码合规——加密与安全的三道门
c++·学习·程序人生·算法·安全
雾里看山2 小时前
源码目录、构建目录与 out-of-source build
c++·软件构建·cmake
渡我白衣4 小时前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
如意猴4 小时前
【C++】001--C++入门(1)
开发语言·c++
hetao17338374 小时前
2026-09-01~09-04 hetao1733837 的刷题记录
c++·算法
HugoStudio_SWAN7 小时前
洛谷 P1420 / P1179 / B4262 最长连号、数字统计与词频统计——统计的三种面孔
c++·学习·程序人生·算法
raindayinrain8 小时前
c++并发
c++
j7~8 小时前
【C++】智能指针的使用及其原理--详解
c++·c++11·内存泄漏·智能指针·raii·boost智能指针