下面用动物类Animal,及其子类Dog和Xuebao实现不同的叫声函数示范多态代码:
#include<iostream>
using namespace std;
//多态满足条件
//1.有继承关系
//2.子类重写父类中的虚函数
//多态使用条件
//父类指针或引用指向子类对象
class Animal
{
public:
//虚函数
virtual void Speak()
{
cout << "动物叫" << endl;
}
};
class Dog : public Animal
{
public :
void Speak()
{
cout << "汪汪汪" << endl;
}
};
class Xuebao : public Animal
{
public :
void Speak()
{
cout << "雪豹闭嘴" << endl;
}
};
void DoSpeak(Animal &animal)
{
animal.Speak();
}
int main() {
Animal animal;
Dog dog;
Xuebao xuebao;
animal.Speak();
dog.Speak();
xuebao.Speak();
}
结果为: