定义
动态绑定是在运行期间发生的绑定,发生动态绑定的函数的运行版本由传入的实际参数类型决定,在运行时觉得函数的版本,所以动态绑定又称运行时绑定,动态绑定是C++的多态实现的一种形式。
在C++中,当使用基类的引用或指针调用一个虚函数时将发生动态绑定。
实现原理
C++中的动态绑定通过虚函数实现。而虚函数是通过一张虚函数表(virtualtable)实现的,拥有虚函数的类在实例化时会创建一张虚函数表。这个表中记录了虚函数的入口地址,当派生类对虚函数进行重写时,虚函数表中相关虚函数的地址就会被替换,以保证动态绑定时能够根据对象的实际类型调用正确的函数。
优点
1、能够提高代码的可用性,使代码更加灵活。
2、多态是设计模式的基础,能够降低耦合性。
缺点
1.需要查找虚函数表来,性能比静态函数调用低。
2.虚函数表本身需要存储空间
实例
class base {
public: