静态联编又称静态束定、早期联编、前期联编。
静态联编是指联编工作是在程序编译连接阶段进行的,静态联编又称早期联编,因为这种联编是在程序开始运行之前完成的。在程序编译阶段进行的这种联编又称静态束定,在编译时就解决了程序中的操作调用与执行该操作代码间的关系,确定这种关系又被称为束定,编译时束定又称为静态束定。
调用速度快,效率高。
程序结果为:
the area of the point p is 0
the area of the circle c is 19.634937
这就是静态联编,编译器在程序运行前就知道什么函数做什么事。
动态联编又称动态关联、动态束定、后期联编、晚期联编。[1]
动态联编是指编译程序在编译阶段并不能确切地知道将要调用的函数,只有在程序执行时才能确定将要调用的函数,为此要确切地知道将要调用的函数,要求联编工作在程序运行时进行,这种在程序运行时进行的联编工作被称为动态联编。C++规定:动态联编是在虚函数的支持下实现的。
动态联编必须包括以下方面:
1、成员函数必须声明为virtual
2、如果基类中声明了为虚函数,则派生类中不必再声明。
调用方式:
通过对象的指针或引用调用成员函数,或通过成员函数调用,反之就无法实现动态联编。
灵活,问题抽象性和问题的易维护性。