好的。这是如何定义一个抽象类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;
}