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

thinkcmf 做企业网站代注册公司要多少钱

thinkcmf 做企业网站,代注册公司要多少钱,做彩票网站模板,电商产品开发流程什么是虚函数 虚函数是在父类中定义的一种特殊类型的函数,允许子类重写该函数以适应其自身需求。虚函数的调用取决于对象的实际类型,而不是指针或引用类型。通过将函数声明为虚函数,可以使继承层次结构中的每个子类都能够使用其自己的实现&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.yayakq.cn/news/287094/

相关文章:

  • 模板手机网站建设价格明细表网站推广的基本方法
  • 网站建设与维护 课件wordpress邮件配置
  • 西安在线网站制作网络营销专业建议
  • wordpress主机记录吕梁seo排名
  • wordpress建网站详细教程网站建设公司服务公司
  • 网站资源库建设报价统计助手小程序怎么制作
  • 访问网站有音乐背景怎么做什么网站做广告效果好
  • 手机网站建设公司推荐网站制作定制
  • 电商网站建设投资预算网站做框架
  • 网站后台修改的页面不能显示网页设计表格模板源代码
  • 企业网站推广计划企业网站备案需要什么
  • 网站的动态新闻数据库怎么做连云港做网站优化
  • 内蒙古建设厅门户网站wordpress 优化提速
  • 开发手机网站教程四川省建设招标网站首页
  • 怎么搭建局域网网站加盟合作招商
  • 解析网站咋做的wordpress 主题丢失
  • 买网站名称深圳网站建设的价格
  • 企业网站做的比较好生成图片的网站
  • 建设企业网站e路护航ios应用程序开发
  • 手游代理联运平台性价比高seo排名优化的
  • 淘宝客网站建设方案书优秀的网站建设托管
  • 宝安哪有网站建设邢台网公众号
  • 机械网站建设开发中文域名网站跳转
  • 什么什么设计英文网站贵州有网站的企业
  • paypal外贸门户网站网站外链的建设
  • 网站建设合同书(范本)wordpress 百度seo
  • 广州网站建设支付网站后台系统设置
  • 网站建设流程步骤为需求分析网站建设实践描述
  • 商业网站的规划和设计平面设计接单价格
  • 查询企业的网站有哪些建筑方案设计说明模板