联编就是在多态性的实现过程中,确定调用哪一个同名函数的过程,又称为“绑定”。
静态联编:在编译阶段完成的联编方式。优点:函数调用速度快,效率高。不足:编程不够灵活。包括:函数重载和运算符重载等。重载多态,强制多态以及参数多态等都可以通过静态联编实现。
动态联编:只有在运行时才确定将要调用哪一个函数。通过继承和虚函数实现。
静态联编的例子:
#include <iostream.h>
class Undergraduate
{
public:
void Dispaly()
{
cout<<"Call BaseClass"<<endl;
cout<<"Undergraduate LiMing"<<endl;
}
};
class Master:public Undergraduate
{
public:
void dispaly()
{
cout<<"Call MasterClass"<<endl;
cout<<"Master WangWei"<<endl;
}
};
class Doctor : public Master
{
public:
void Display()
{
cout<<"Call DoctorClass"<<endl;
cout<<"Doctor ZhangHua"<<endl;
}
};
void main()
{
Undergraduate s1,*pointer;
Master s2;
Doctor s3;
pointer = &s1;
pointer->Display();
pointer = &s2;
pointer->Display();
pointer = &s3;
pointer->Display();
}
运行结果
Call BaseClass
Undergraduate LiMing
Call BaseClass
Undergraduate LiMing
Call BaseClass
Undergraduate LiMing