前言
在面向对象的程序设计中使用多态,能够增加程序的可扩充性,及程序需要修改或增加功能的时候,需要改动和增加的代码较少。
多态的例子。涉及虚函数(成员函数前带virtual关键字)。虚函数可以参与多态,普通函数不可以。构造函数和静态成员函数不能是虚函数。
#include<iostream>
using namespace std;
class A{
public:
virtual void Print(){
cout<<"A::Print"<<endl;
}
};
class B:public A{
public:
virtual void Print(){
cout<<"B::Print"<<endl;
}
};
class D:public A{
public:
virtual void Print(){
cout<<"D::Print"<<endl;
}
};
class E:public B{
public:
virtual void Print(){
cout<<"E::Print"<<endl;
}
};
int main(){
A a;B b;E e;D d;
A *pa=&a;B *pb=&b;
D *pd=&d;E *pe=&e;
pa->Print();
pa=pb;
pa->Print();
pa=pd;
pa->Print();
pa=pe;
pa->Print();
return 0;
}
- 结果: