基类定义如下: class animal { public: virtual void voice()=0; }; 定义猫和狗两个继承类,然后在向量容器中放入动态生成的一只猫对象和一只狗对象(基于多态方式,即把基类指针存入向量容器); 而后
时间: 2024-03-25 19:37:10 浏览: 47
可以通过以下代码来遍历容器中的每个动物对象并调用它们的voice()函数:
```
#include <iostream>
#include <vector>
using namespace std;
class animal {
public:
virtual void voice() = 0;
};
class cat : public animal {
public:
virtual void voice() {
cout << "Meow!" << endl;
}
};
class dog : public animal {
public:
virtual void voice() {
cout << "Woof!" << endl;
}
};
int main() {
vector<animal*> animals;
animals.push_back(new cat());
animals.push_back(new dog());
for (int i = 0; i < animals.size(); i++) {
animals[i]->voice();
}
return 0;
}
```
输出结果为:
```
Meow!
Woof!
```
阅读全文