当编译器发现类中有虚函数时,会创建一张虚函数表,将虚函数的函数入口放入虚函数表中,并且在对象中增加一个指针vptr指向虚函数表。当派生类覆盖基类的虚函数时,会将虚函数表中的对应指针进行替换,从而调用派生类覆盖之后的虚函数,从而实现动态绑定。
动态绑定的实现
最新推荐文章于 2024-06-12 18:28:23 发布
当编译器发现类中有虚函数时,会创建一张虚函数表,将虚函数的函数入口放入虚函数表中,并且在对象中增加一个指针vptr指向虚函数表。当派生类覆盖基类的虚函数时,会将虚函数表中的对应指针进行替换,从而调用派生类覆盖之后的虚函数,从而实现动态绑定。