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

自建网站过程网站的seo优化报告

自建网站过程,网站的seo优化报告,网站建设商务通什么意思,自己做淘宝优惠券网站什么是虚函数 虚函数是在父类中定义的一种特殊类型的函数,允许子类重写该函数以适应其自身需求。虚函数的调用取决于对象的实际类型,而不是指针或引用类型。通过将函数声明为虚函数,可以使继承层次结构中的每个子类都能够使用其自己的实现&a…

什么是虚函数

虚函数是在父类中定义的一种特殊类型的函数,允许子类重写该函数以适应其自身需求。虚函数的调用取决于对象的实际类型,而不是指针或引用类型。通过将函数声明为虚函数,可以使继承层次结构中的每个子类都能够使用其自己的实现,从而提高代码的可扩展性和灵活性。在C++中,使用关键字"virtual"来定义虚函数。

虚函数的实现机制是什么?

虚函数是通过虚函数表来实现的,虚函数表包含了一个类(所有)的虚函数的地址,在有虚函数的类对象中,它内存空间的头部会有一个虚函数表指针(虚表指针),用来管理虚函数表。当子类对象对父类虚函数进行重写的时候,虚函数表的相应虚函数地址会发生改变,当我们用一个父类的指针来操作子类对象的时候,它可以指明实际所调用的函数。

  • 虚函数表:每个包含虚函数的类都会生成一个虚函数表(Virtual Table),其中存储着该类中所有虚函数的地址。虚函数表是一个由指针构成的数组,每个指针指向一个虚函数的实现代码。
  • 虚函数指针:在对象的内存布局中,编译器会添加一个额外的指针,称为虚函数指针或虚表指针(Virtual Table Pointer,简称 VTable 指针)。这个指针指向该对象对应的虚函数表,从而让程序能够动态地调用正确的虚函数。

当一个基类指针或引用调用虚函数时,编译器会使用虚表指针来查找该对象对应的虚函数表,并根据函数在虚函数表中的位置来调用正确的虚函数。

虚函数的覆盖和重写

在 C++ 中,派生类可以重写 (override) 它继承的虚函数,这被称为函数的覆盖 (overriding)。当然,子类也可以选择不重写基类的虚函数,那么它将默认继承基类的实现,这就是虚函数的重载 (overloading)。

重写用关键字override(可用可不用,用了子类中必须存在与父类虚函数完全匹配的函数签名,不然编译报错)

虚函数调用是在编译时确定还是运行时确定的?

只有通过指针或者引用的方式调用虚函数是运行时确定,通过值调用的虚函数是编译期就可以确定的

https://www.zhihu.com/question/491602524/answer/2165605549

虚函数是存在类中还是类对象中(即是否共享虚表)?

答:存在类中,不同的类对象共享一张虚函数表(为了节省内存空间)。

在(基类的)构造函数和析构函数中调用虚函数会怎么样

答:语法上没问题,但不会实现多态。

  • 基类构造函数中调用虚函数

    • 行为
      当基类的构造函数中调用虚函数时,只能调用基类中定义的虚函数版本,而不会调用派生类中重写的版本。
    • 原因
      • 在基类的构造函数中,派生类对象还没有被完全构造(派生类部分还没有初始化)。
      • 此时,vptr 指向的是基类的虚函数表 (vtable)。
      • 即使派生类覆盖了虚函数,构造函数中也只能看到基类的虚函数表。
  • 基类析构函数中调用虚函数

    • 行为
      当基类的析构函数中调用虚函数时,只能调用基类中定义的虚函数版本,而不会调用派生类中重写的版本。
    • 原因
      • 在析构函数执行时,派生类的析构函数已经被调用,派生类的成员和虚函数表已经失效。
      • 此时,vptr 已经被还原为指向基类的虚函数表。
      • 所以析构函数中调用虚函数只会调用基类版本。
http://www.sczhlp.com/news/43697/

相关文章:

  • 主流网站宽度打开百度
  • 南京代做网站百度代理查询
  • 网站建设 九艾青岛seo服务哪家好
  • 郑州制作网站价格视频外链在线生成
  • word网站链接怎么做建网站要多少钱
  • 怎样围绕网站专题发展来做ppt许昌正规网站优化公司
  • 如何自己制作免费网站seo关键词推广
  • 域名备案个人网站名称百度搜索风云排行榜
  • 动态html做网站背景seo网站快速排名
  • 政务公开 网站建设googleplaystore
  • 将Windows11右键菜单修改为Windows10样式(亲测有效)
  • 机械设计的 “未来趋势”:智能化与模块化​
  • cf2111e
  • 做网站如何语音对话百度seo网站
  • 货代如何做亚马逊和速卖通网站seo优化推广多少钱
  • 合肥手机网站建设怎样开网站
  • 网站做的最好的公司一键生成个人网站
  • 坪地网站建设包括哪些seo教程培训
  • 买完阿里云域名如何做网站网络平台有哪些
  • 做网站算软件开发么app注册推广团队
  • 网站建设合同违约上海网络推广培训机构
  • 新网网站空间百度推广收费多少
  • 制作公司网站哪个好上海做网站优化
  • 网站开发商官网搜索网络如何制造
  • 轴承:机械的 “关节”,选对才能少出故障​
  • 机械结构里的 “省力能手”:连杆机构​
  • 机械设计里的 “安全卫士”:过载保护装置​
  • JAVA中哪些集合允许value为null
  • 产品推广方案推广思路和方法免费关键词排名优化软件
  • 网页设计与网站建设论文搜狐三季度营收多少