main函数功能更详细一点可以满足不同数量的同种动物
时间: 2024-02-20 08:02:25 浏览: 63
C++ main函数的几点细节
5星 · 资源好评率100%
好的,我可以为您更新代码,以便在 `main()` 函数中可以添加任意数量的同种动物,并输出它们的叫声。以下是更新后的代码:
```
#include <iostream>
#include <vector>
using namespace std;
class Animal {
public:
virtual void makeSound() = 0;
};
class Cat : public Animal {
public:
void makeSound() {
cout << "Meow Meow" << endl;
}
};
class Dog : public Animal {
public:
void makeSound() {
cout << "Woof Woof" << endl;
}
};
class Cow : public Animal {
public:
void makeSound() {
cout << "Moo Moo" << endl;
}
};
int main() {
vector<Animal*> animals;
int numCats, numDogs, numCows;
// 获取用户输入的每种动物的数量
cout << "How many cats do you have? ";
cin >> numCats;
cout << "How many dogs do you have? ";
cin >> numDogs;
cout << "How many cows do you have? ";
cin >> numCows;
// 根据数量创建动物对象,并添加到动物向量中
for (int i = 0; i < numCats; i++) {
animals.push_back(new Cat);
}
for (int i = 0; i < numDogs; i++) {
animals.push_back(new Dog);
}
for (int i = 0; i < numCows; i++) {
animals.push_back(new Cow);
}
// 输出每个动物的叫声
for (int i = 0; i < animals.size(); i++) {
animals[i]->makeSound();
}
// 释放动物对象的内存
for (int i = 0; i < animals.size(); i++) {
delete animals[i];
}
return 0;
}
```
在这个更新后的程序中,我们使用了一个动物向量 `animals` 来存储所有动物对象的指针。我们还添加了三个变量 `numCats`、`numDogs` 和 `numCows`,分别表示每种动物的数量。我们在程序开始时,获取用户输入的这些数量,并根据它们创建相应数量的动物对象,并将它们添加到 `animals` 向量中。
然后我们遍历 `animals` 向量,并依次调用每个动物对象的 `makeSound()` 函数,输出它们的叫声。最后,我们释放动物对象的内存,避免内存泄漏。
这样,您就可以在 `main()` 函数中添加任意数量的同种动物,并输出它们的叫声了。希望这个更新后的代码能够满足您的需求。
阅读全文