多态实现一种非常有效的方式就是虚函数,通过基类的指针调用派生类的成员。
不多说了,上代码:
#include <iostream>
using namespace std;
class Bird
{
public:
virtual void fly()
{
cout << "Bird fly" << endl;
}
};
class Duck : public Bird
{
public:
void fly()
{
cout << "Duck fly" << endl;
}
};
class Chicken : public Bird
{
public:
void fly()
{
cout << "Chicken fly" << endl;
}
};
int main()
{
Bird *bird_one = new Duck;
bird_one->fly();
Bird *bird_two = new Chicken;
bird_two->fly();
Bird *bird_self = new Bird;
bird_self->fly();
return 0;
}
执行结果: