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

钓鱼网站开发系列教程青岛开发区网站建设公司

钓鱼网站开发系列教程,青岛开发区网站建设公司,读书网站建设策划书摘要,网络营销的核心是虚函数表#xff08;通常简称为 vtable#xff09;是 C 用于实现多态行为的一种机制。当一个类定义了虚函数或者继承了虚函数#xff0c;编译器会为该类生成一个虚函数表。下面详细介绍虚函数表及其工作原理#xff1a; 1. 什么是虚函数表#xff1f; 虚函数表是一个存放…虚函数表通常简称为 vtable是 C 用于实现多态行为的一种机制。当一个类定义了虚函数或者继承了虚函数编译器会为该类生成一个虚函数表。下面详细介绍虚函数表及其工作原理 1. 什么是虚函数表 虚函数表是一个存放指向虚函数的指针数组。每一个有虚函数的类或者从有虚函数的类继承而来的类都有一个相关联的虚函数表。 2. 对象与虚函数表 每个有虚函数的对象都包含一个指向其类的虚函数表的指针。这个指针通常被称为 vptr。 3. 如何工作 当调用一个对象的虚函数时编译器使用对象的 vptr 来定位类的虚函数表。接着从虚函数表中找到相应的虚函数指针并调用该函数。这个过程是在运行时进行的因此可以实现多态行为。 4. 继承和虚函数表 当一个类继承自另一个有虚函数的类并且没有重写任何虚函数该类的对象将使用父类的虚函数表。 当派生类重写了基类的虚函数派生类的虚函数表中该函数的入口会被更新为指向派生类版本的函数。 如果派生类添加了新的虚函数它们会被添加到虚函数表的末尾。 5. 为什么需要虚函数表 C 使用虚函数表来支持动态多态允许在基类指针或引用上调用适当的派生类函数而不仅仅是基类定义的函数。 6. 性能考虑 虚函数调用通常比非虚函数调用稍慢因为需要额外的间接跳转。然而这种开销在绝大多数应用中都是可以接受的。 虚函数还增加了对象的大小因为每个对象需要一个 vptr以及类的大小因为需要存储虚函数表。 7. 示例 #include iostreamclass Base { public:virtual void foo() { std::cout Base::foo() std::endl; } };class Derived : public Base { public:void foo() override { std::cout Derived::foo() std::endl; } };int main() {Base* obj new Derived();obj-foo(); // 输出 Derived::foo()delete obj;return 0; }在这个示例中当我们通过基类指针 obj 调用 foo 函数时实际调用的是 Derived 类中的版本。这是因为虚函数表机制找到了 Derived 类版本的 foo 函数并执行了它。 总的来说虚函数表是 C 实现动态多态的基石它允许我们在基类指针或引用上调用适当的派生类方法。
http://www.zqtcl.cn/news/663575/

相关文章:

  • 网站建设和维护要点网站建设完提交百度
  • app开发人员网站上海保洁服务网站建设
  • 周口网站制作公司哪家好苏州高新区住建局官网
  • 建设特效网站自助网站建设系统
  • 用软件做的网站权限管理如何让自己的网站被百度收录
  • 简历做的很棒的网站杭州公司网站建设电话
  • 购买腾讯云主机可以直接做网站舒兰网站建设
  • 环保主题静态网站php 手机网站源码
  • 做网站找哪家好要钱吗小程序开发合同
  • 速成美站东莞网站建设 包装材料
  • 丹阳网站建设案例自己做个网站怎么赚钱
  • 净水机企业网站源码浏览器下载安装2022最新版
  • 高端网站建设四川网页版微信怎么下载
  • 青岛做网站皆赴青岛博采wordpress怎么改密码忘记
  • 深圳最好的网站建设广西论坛网站建设
  • html5网站设计网站建设 广西
  • 顺德手机网站设计价位网站开发学习流程图
  • 班级网站设计合肥蜀山网站开发
  • 杭州网站建设培训ck播放器整合WordPress
  • 网站建设是什么软件品牌策划公司哪家好推荐
  • 网站转跳怎么做餐饮vi设计
  • 刘连康seo培训哪家强网站优化推广平台
  • 网站推广内容滁州做网站的
  • 黄山做网站公司山东省住房和城乡建设厅举报电话
  • 中医科网站建设素材上海文明城市建设网站
  • html课程教学网站模板手机微信小程序开发教程
  • 用电脑做兼职的网站比较好食品网站建设网站定制开发
  • 网站开发 加密保护小程序制作开发进度表
  • 深圳坪山站外贸展示型网站建设
  • 手机端自定义做链接网站济南网站制作方案