c++定义一个抽象类 Animal,包含抽象方法 void speak() 和 void move()定义三个派生类 Dog,Cat和 Fish,,分别重写void speak() 和 void move0函数定义一个函数 void doAction(Animal& animal)调用传入的动物的 speak0 和 move( 方法
时间: 2023-02-16 19:08:23 浏览: 90
好的。这是如何定义一个抽象类Animal,包含抽象方法void speak()和void move(),以及三个派生类Dog、Cat和Fish,分别重写void speak()和void move()函数,以及一个函数void doAction(Animal):
```
#include <iostream>
using namespace std;
class Animal
{
public:
virtual void speak() = 0; // 抽象方法
virtual void move() = 0; // 抽象方法
};
class Dog : public Animal
{
public:
virtual void speak()
{
cout << "汪汪" << endl;
}
virtual void move()
{
cout << "跑" << endl;
}
};
class Cat : public Animal
{
public:
virtual void speak()
{
cout << "喵喵" << endl;
}
virtual void move()
{
cout << "跳" << endl;
}
};
class Fish : public Animal
{
public:
virtual void speak()
{
cout << "噼噼" << endl;
}
virtual void move()
{
cout << "游" << endl;
}
};
void doAction(Animal &a)
{
a.speak();
a.move();
}
int main()
{
Dog d;
Cat c;
Fish f;
doAction(d);
doAction(c);
doAction(f);
return 0;
}
```
这个程序的输出如下:
```
汪汪
跑
喵喵
跳
噼噼
游
```
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)