设计一个动物园程序,有两个类:动物类 Animal 和鸟类 Bird。其中,动物类包含公有属性 name 和 age,以及虚函数 show();鸟类继承自动物类,包含公有属性 wing_length,以及实现 show() 函数,打印出鸟的基本信息和翅膀长度。 要求: 1. 使用多态特性,定义一个指向动物类对象的指针,指向鸟类对象,并通过该指针调用 show() 函数。
时间: 2023-06-08 09:04:46 浏览: 149
答案:
没问题,以下是代码实现:
```c++
#include <iostream>
using namespace std;
class Animal {
public:
string name;
int age;
virtual void show() {
cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
}
};
class Bird : public Animal {
public:
int wing_length;
void show() override {
Animal::show();
cout << "Wing length: " << wing_length << endl;
}
};
int main() {
Bird bird;
bird.name = "Eagle";
bird.age = 10;
bird.wing_length = 2;
Animal* ptr = &bird;
ptr->show();
return 0;
}
```
我们定义了 Animal 类和 Bird 类,其中 Bird 类继承自 Animal 类。使用多态特性,我们定义了一个指向动物类对象的指针 ptr,并让它指向 Bird 类对象。这样就能够调用 Bird 类的 show() 函数了,打印出鸟的基本信息和翅膀长度。
阅读全文