定义一个动物( Animal )基类,具有 Age 、 Weight 等数据成员, Walk 、 Breath 等成员函数,其中 Breath 是虚函数。由 Animal 派生出鱼( Fish )类和陆地动物( TerrestrialAnimal )类。 Fish 类有鳍( Fim )数据成员, TerrestrialAnimal 类有腿( Leg )数据成员。在 Fish 类和 TerrestrialAnimal 类中重载成员函数 Walk 实现静态多态, Breath 利用 virtual 实现动态多态性,并测试类的多态性。c++程序。
时间: 2024-03-13 20:48:25 浏览: 393
以下是符合要求的 C++ 代码:
```cpp
#include<iostream>
using namespace std;
class Animal{
protected:
int Age;
int Weight;
public:
void Walk(){
cout<<"Animal can walk."<<endl;
}
virtual void Breath(){
cout<<"Animal can breath."<<endl;
}
};
class Fish:public Animal{
private:
int Fim;
public:
void Walk(){
cout<<"Fish can swim."<<endl;
}
virtual void Breath(){
cout<<"Fish can breath in water."<<endl;
}
};
class TerrestrialAnimal:public Animal{
protected:
int Leg;
public:
void Walk(){
cout<<"Terrestrial Animal can walk on land."<<endl;
}
virtual void Breath(){
cout<<"Terrestrial Animal can breath in air."<<endl;
}
};
int main(){
Animal a;
Fish f;
TerrestrialAnimal ta;
Animal *p;
p=&a;
p->Walk();
p->Breath();
p=&f;
p->Walk();
p->Breath();
p=&ta;
p->Walk();
p->Breath();
return 0;
}
```
上述代码中,首先定义了一个 Animal 类,其中包含 Age 和 Weight 两个数据成员和 Walk 和 Breath 两个成员函数,其中 Breath 是虚函数。
然后 Fish 类和 TerrestrialAnimal 类分别继承 Animal 类,并分别增加了 Fim 和 Leg 两个数据成员。在 Fish 类和 TerrestrialAnimal 类中,重载了 Walk 成员函数,实现了静态多态,而 Breath 成员函数则利用 virtual 实现了动态多态性。
在主函数中,分别定义了 Animal 类、Fish 类和 TerrestrialAnimal 类的对象,并通过指针访问了它们的 Walk 和 Breath 成员函数,测试了类的多态性。
阅读全文