虚函数的实现机制

开门见山的说,虚函数能够动态绑定的实现是一个虚表的存在

创新互联公司长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为夏津企业提供专业的成都网站设计、成都网站制作,夏津网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

有如下继承关系

class A

{

public:

       virtual void fun1();

       virtual void fun2();

};

class B:public A

{

public:

       void fun1();

       void fun3();

};

每一有虚函数的类在实例化的时候会形成一个虚表,而在类内保存一个指向虚表的指针,

这个虚表指向了具体函数的实现:

如,在A类中虚表的内存布局

指针指向A类的fun 1()

指针指向A类的fun2()


A类对象的内存布局

指向A类虚表的指针

A类对象的数据成员

 

B继承的A因此B也有一个表,不同的是B中的虚表布局一样,而指向的函数地址不同

那么当父类的指针指向子类的对象的时候,虚表指针指向的虚表会动态的指向子类的表,从而实现了虚函数的动态绑定。


本文标题:虚函数的实现机制
文章URL:http://bzwzjz.com/article/isjpsh.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 专业网站设计 上市集团网站建设 重庆网站制作 手机网站设计 网站建设方案 成都网站建设流程 移动手机网站制作 响应式网站设计方案 响应式网站建设 成都网站设计 高端网站建设 网站制作 网站建设推广 移动网站建设 H5网站制作 定制网站建设多少钱 手机网站制作 网站制作报价 网站建设公司 商城网站建设 高端网站设计 成都网站设计