动态绑定是如何实现的?

当编译器发现类中有虚函数时,会创建一张虚函数表,把虚函数的函数入口地址放到虚函数表中,并且在对象中增加一个指针vptr,用于指向类的虚函数表。当派生类覆盖基类的虚函数时,会将虚函数表中对应的指针进行替换,从而调用派生类中覆盖后的虚函数,从而实现动态绑定。

发表评论

后才能评论

评论(1)

  • 小情绪 普通 2022-08-15 2:03 上午

    动态绑定实现原理 C++中,通过基类的引用或指针调用虚函数时,发生动态绑定。