多态的基本
#include<iostream>
using namespace std;
//动物类
class Animal
{
public:virtual void Speak(){cout << " 动物在噢噢叫" << endl;}
};
//猫类
class Cat :public Animal
{
public:void Speak(){cout << "小猫在噢噢叫" << endl;}
};
//狗类
class Dog:public Animal
{
public:void Speak(){cout << "小狗在噢噢叫" << endl;}
};
//执行说话的函数
//地址早绑定,在编译阶段确定函数地址
//如果想 执行猫叫,那么这个函数地址就不能提前绑定,需要在运行阶段进行绑定,地址晚绑定//动态多态满足条件
//1.有继承关系
//2.子类重写父类的虚函数
void doSpeak(Animal &animal)
{animal.Speak();
}void test01()
{Cat cat;Dog dog;doSpeak(cat);doSpeak(dog);
}
int main()
{test01();system("pause");return 0;
}