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;
}
相关推荐
‎ദ്ദിᵔ.˛.ᵔ₎8 分钟前
STL 栈 队列
开发语言·c++
2401_8920709822 分钟前
【Linux C++ 日志系统实战】高性能文件写入 AppendFile 核心方法解析
linux·c++·日志系统·文件写对象
郭涤生25 分钟前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿29 分钟前
vector
c语言·开发语言·数据结构·c++·算法
cccyi739 分钟前
【C++ 脚手架】etcd 的介绍与使用
c++·服务发现·etcd·服务注册
liu****42 分钟前
第16届省赛蓝桥杯大赛C/C++大学B组(京津冀)
开发语言·数据结构·c++·算法·蓝桥杯
fengfuyao98542 分钟前
VC++基于服务器的点对点文件传输实例
服务器·开发语言·c++
山甫aa1 小时前
List 容器 -----C++的stl学习
开发语言·c++·学习
CoderCodingNo1 小时前
【GESP】C++四、五级练习题 luogu-P1177 【模板】排序
数据结构·c++·算法
森G1 小时前
58、最佳实践与注意事项---------多线程、竟态条件和同步
c++·qt