编写一个编程作品“动物园”可以是一个有趣且富有教育意义的项目。以下是一个基本的实现思路,分为几个步骤:
定义动物类
创建一个基类 `Animal`,包含动物的基本属性和方法,如 `speak()`。
从 `Animal` 类派生出具体动物类,如 `Tiger`、`Dog`、`Duck` 等,每个子类重写 `speak()` 方法以输出特定的叫声。
创建动物园类
定义一个 `Zoo` 类,用于管理动物对象。
在 `Zoo` 类中实现添加动物、显示动物信息等方法。
用户交互
编写一个简单的用户界面,允许用户输入动物名称、名字和年龄。
根据用户输入,在动物园中查找并显示相应的动物信息。
```cpp
include include include // 基类 Animal class Animal { public: virtual void speak() const = 0; virtual ~Animal() {} }; // 派生类 Tiger class Tiger : public Animal { public: void speak() const override { std::cout << "Roar!" << std::endl; } }; // 派生类 Dog class Dog : public Animal { public: void speak() const override { std::cout << "Woof!" << std::endl; } }; // 派生类 Duck class Duck : public Animal { public: void speak() const override { std::cout << "Quack!" << std::endl; } }; // 动物园类 class Zoo { private: std::vector animals; public: void addAnimal(Animal* animal) { animals.push_back(animal); } void displayAnimals() const { for (const auto& animal : animals) { animal->speak(); } } ~Zoo() { for (auto& animal : animals) { delete animal; } } }; int main() { Zoo zoo; // 添加动物到动物园 zoo.addAnimal(new Tiger()); zoo.addAnimal(new Dog()); zoo.addAnimal(new Duck()); // 显示动物园中的动物 zoo.displayAnimals(); return 0; } ``` 代码解释 定义了一个纯虚函数 `speak()`,所有派生类必须实现这个方法。 分别继承自 `Animal` 类,并实现了 `speak()` 方法以输出特定的叫声。 使用 `std::vector` 存储 `Animal` 指针。 `addAnimal()` 方法用于向动物园添加动物。 `displayAnimals()` 方法遍历并调用每个动物的 `speak()` 方法。 创建 `Zoo` 对象。 添加 `Tiger`、`Dog` 和 `Duck` 对象到动物园。 调用 `displayAnimals()` 方法显示所有动物的叫声。 这个示例代码展示了如何使用面向对象编程(OOP)来创建一个简单的动物园程序。你可以根据需要扩展这个程序,例如添加更多的动物类、实现用户输入和更复杂的动物园管理功能。Animal 类
Tiger、Dog、Duck 类
Zoo 类
main 函数