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;
}
相关推荐
不想写代码的星星9 小时前
std::function 详解:用法、原理与现代 C++ 最佳实践
c++
樱木Plus2 天前
深拷贝(Deep Copy)和浅拷贝(Shallow Copy)
c++
blasit4 天前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
肆忆_5 天前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
不想写代码的星星5 天前
虚函数表:C++ 多态背后的那个男人
c++
端平入洛7 天前
delete又未完全delete
c++
端平入洛8 天前
auto有时不auto
c++
哇哈哈20219 天前
信号量和信号
linux·c++
多恩Stone9 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
蜡笔小马9 天前
21.Boost.Geometry disjoint、distance、envelope、equals、expand和for_each算法接口详解
c++·算法·boost