当前位置:首页 C++ > 正文

c++定义猫科动物Animal类,由其派生出猫类(Cat)和豹类(Leopard),二者都包含虚函数sound(),要求根据派生类对象的不同调用各自重载后的成员函数

作者:野牛程序员:2024-10-29 17:07:56 C++阅读 2545
c++定义猫科动物Animal类,由其派生出猫类(Cat)和豹类(Leopard),二者都包含虚函数sound(),要求根据派生类对象的不同调用各自重载后的成员函数

c++定义猫科动物Animal类,由其派生出猫类(Cat)和豹类(Leopard),二者都包含虚函数sound(),要求根据派生类对象的不同调用各自重载后的成员函数

以下是一个 C++ 程序,定义了一个 Animal 类作为基类,并派生出 Cat 类和 Leopard 类。每个派生类都重载了 sound() 虚函数,以输出各自的声音。

#include <iostream>

// 基类 Animal
class Animal {
public:
    virtual void sound() const = 0; // 纯虚函数
};

// 派生类 Cat
class Cat : public Animal {
public:
    void sound() const override {
        std::cout << "Cat: Meow!" << std::endl;
    }
};

// 派生类 Leopard
class Leopard : public Animal {
public:
    void sound() const override {
        std::cout << "Leopard: Roar!" << std::endl;
    }
};

int main() {
    Animal* animals[2];
    animals[0] = new Cat();      // 创建 Cat 对象
    animals[1] = new Leopard();  // 创建 Leopard 对象

    for (int i = 0; i < 2; ++i) {
        animals[i]->sound(); // 调用各自的 sound() 方法
        delete animals[i];   // 释放内存
    }

    return 0;
}

程序说明

  1. Animal 类:

    • 定义了一个基类,包含一个纯虚函数 sound(),用于输出动物的声音。

  2. Cat 类:

    • 继承自 Animal,重写 sound() 方法,输出猫的叫声。

  3. Leopard 类:

    • 继承自 Animal,重写 sound() 方法,输出豹的叫声。

  4. 主函数:

    • 创建了一个 Animal 指针数组,用于存储不同动物对象。

    • 通过循环调用 sound() 方法,根据具体的派生类输出相应的声音。

    • 最后释放动态分配的内存以防止内存泄漏。

这个程序展示了如何使用虚函数和多态性来实现不同动物的声音输出。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • c++
  • 最新推荐

    热门点击