设计一个动物园程序,有两个类:动物类 Animal 和鸟类 Bird。其中,动物类包含公有属性 name 和 age,以及虚函数 show();
时间: 2023-06-08 18:04:44 浏览: 130
鸟类继承动物类,拥有私有属性 wingspan 和重写的 show() 函数。设计程序,实现以下功能:
1. 添加动物和鸟的对象,并输出它们的信息
2. 调用动物和鸟的 show() 函数,分别输出它们的信息
好的,这是一个程序设计问题,我可以回答。以下是程序设计的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Animal {
public:
string name;
int age;
virtual void show() {
cout << "name: " << name << ", age: " << age;
}
};
class Bird : public Animal {
private:
double wingspan;
public:
Bird(double w) : wingspan(w) {}
void show() override {
cout << "name: " << name << ", age: " << age << ", wingspan: " << wingspan;
}
};
int main() {
Animal* animal1 = new Animal();
animal1->name = "Tiger";
animal1->age = 3;
Bird* bird1 = new Bird(10);
bird1->name = "Eagle";
bird1->age = 5;
animal1->show();
cout << endl;
bird1->show();
return 0;
}
```
这个程序定义了两个类 Animal 和 Bird,其中 Bird 继承自 Animal。Animal 中定义了两个公有属性 name 和 age,还有一个虚函数 show()。Bird 中扩展了一个私有属性 wingspan,并重写了 show() 函数。
在主函数中,我们实例化了一个 Animal 对象和一个 Bird 对象,并设置它们的属性。然后分别调用 show() 函数输出它们的信息。输出结果如下:
```
name: Tiger, age: 3
name: Eagle, age: 5, wingspan: 10
```
希望我的回答对你有帮助。
阅读全文