动态多态实例
条件:
1、有父类和子类的继承关系
2、子类重写父类的函数
3、父类的引用作为指针常量被传入子类变量
用关键字virtual来修饰被重写的函数即可
代码如下:
#include<iostream>
#include<string>
using namespace std;
//本节来讨论多态的例子1、存在继承 2、子类重写父类的函数 3、父类的引用作为指针指向子类
class Animal
{
public:
virtual void Speak()
{
cout << "a animal is speaking!" << endl;
}
};
class Dog:public Animal
{
public:
void Speak()
{
cout << "a dog is speaking !" << endl;
}
};
class Cat :public Animal
{
public:
void Speak()
{
cout << "a cat is speaking" << endl;
}
};
void test01(Animal &animal)
{
animal.Speak();
}
void main()
{
Dog dog1;
test01(dog1);
system("pause");
}