当前位置: 首页 > news >正文

交易类网站建设博购企业名录搜索软件

交易类网站建设,博购企业名录搜索软件,成都建设企业网站,楚雄市建设规划批前公示在那个网站类的虚表 每个包含了虚函数的类都包含一个虚表。 当一个类(B)继承另一个类(A)时,类B会继承类A的函数的调用权。所以如果一个基类包含了虚函数,那么其继承类也可调用这些虚函数,换句话说&…

类的虚表

每个包含了虚函数的类都包含一个虚表。 

当一个类(B)继承另一个类(A)时,类B会继承类A的函数的调用权。所以如果一个基类包含了虚函数,那么其继承类也可调用这些虚函数,换句话说,一个类继承了包含虚函数的基类,那么这个类也拥有自己的虚表。

来看以下的代码。类A包含虚函数vfunc1,vfunc2,由于类A包含虚函数,故类A拥有一个虚表。

class A {
public:virtual void vfunc1(){    cout << "A::vfunc1" << endl;}virtual void vfunc2(){    cout << "A::vfunc2" << endl;}void func1();void func2();
private:int m_data1, m_data2;
};

类A的虚表如图1所示。 

 虚表是一个指针数组,其元素是虚函数的指针,每个元素对应一个虚函数的函数指针。需要指出的是,普通的函数即非虚函数,其调用并不需要经过虚表,所以虚表的元素并不包括普通函数的函数指针。

虚函数指针的赋值发生在编译器的编译阶段,也就是说在代码的编译阶段,虚表就可以构造出来了。

虚表是属于类的,而不是属于某个具体的对象,一个类只需要一个虚表即可。同一个类的所有对象都使用同一个虚表。

虚表指针

为了指定对象的虚表,对象内部包含一个虚表的指针,来指向自己所使用的虚表。为了让每个包含虚表的类的对象都拥有一个虚表指针,编译器在类中添加了一个指针,*__vptr,用来指向虚表。这样,当类的对象在创建时便拥有了这个指针,且这个指针的值会自动被设置为指向类的虚表。

 上面指出,一个继承类的基类如果包含虚函数,那个这个继承类也有拥有自己的虚表,故这个继承类的对象也包含一个虚表指针,用来指向它的虚表。

虚函数表存储位置

首先虚函数表存储在只读数据段(.rodata)、虚函数存储在代码段(.text)、虚表指针的存储的位置与对象存储的位置相同,可能在栈、也可能在堆或数据段等。
扩展:


 

 

http://www.yayakq.cn/news/793940/

相关文章:

  • 河南手机网站建设公司wordpress 附件 函数
  • 安全电子商务网站设计深圳外贸建站模板
  • 现在网站开发的前端语言网络系统管理技能大赛答案
  • 如何做网站详细步骤wordpress更换网站logo
  • 左侧固定导航栏的网站建行个人余额查询网站
  • 中国三大门户网站是哪三个做恋爱方面的网站
  • 开发 网站 沈阳哪些外贸网站比较好
  • 做蛋糕网站烟台市最好的专业做网站的公司
  • 做类似淘宝的网站wordpress 远程设置
  • 网页游戏网站平台广西网站建设证件查询
  • 郑州seo网站管理wordpress音乐源码
  • 德州网页设计师培训wordpress 优化设置
  • 濮阳公司做网站代理平台什么意思
  • Asp网站开发入门WordPress文章无法打开
  • 商城网站开发方案建工网一级建造师论坛
  • 家教中介怎么利用网站来做的国际传来10个最新消息
  • 建立网站需要多久无忧ppt模板下载 免费
  • 汕头站扩建招标揭阳市网站开发
  • 平顶山哪里做网站布吉做棋牌网站建设哪家公司便宜
  • 为什么自己花钱做的网站竟然不是自己的?(在线编程网站开发
  • 普陀网站建设哪家便宜产品外观设计报价
  • 网站一直没收录小程序游戏破解
  • 我国旅游网站的建设企业建立企业网站有哪些优势?
  • 南京市英语网站建设内黄县住房和城乡建设局网站
  • 如何做一个营销型网站微信里有人发做任务网站
  • 哪里有网站制作建设深圳网站建设q479185700強
  • 网站图片布局橙 网站
  • 网站建设招商江西微网站建设
  • 做推广的的网站模板游戏网页制作素材
  • 齐齐哈尔建设局网站推广策略的定义