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

企业网站开发到上线的视频广告公司简介范文大全

企业网站开发到上线的视频,广告公司简介范文大全,网站建设维护 知乎,泰安集团网站建设报价假设有一个问题,类似于鸭子这样的动物有很多种,如企鹅和鱿鱼,它们也可能会有一些共同的特性。例如,我们可以有一个叫做 AquaticBird (涉禽,水鸟的一类)的类,它又继承自 Animal 和 Sw…

假设有一个问题,类似于鸭子这样的动物有很多种,如企鹅和鱿鱼,它们也可能会有一些共同的特性。例如,我们可以有一个叫做 AquaticBird (涉禽,水鸟的一类)的类,它又继承自 Animal 和 SwimmingAnimal,就像这样:

class AquaticBird : public Animal, public SwimmingAnimal {  // AquaticBird类既是Animal也是SwimmingAnimal  
};  

如果我们同时继承了这两个类,像下图所示,将发生菱形继承:

        Animal  /      \
FlyingAnimal   AquaticBird  \      /  Duck  

在这个结构中,Duck 既继承了 FlyingAnimal,也间接继承了 Animal 通过 AquaticBird 的方式。问题在于,如果我们试图调用 Animal 类的方法,例如 eat(),Duck 会造成二义性:它不清楚是通过哪个路径来调用 Animal 类的实例。

那么如何解决菱形继承问题呢

解决菱形继承问题

通过使用 虚继承,我们可以确保在最终的 Duck 类中,只有一个 Animal 的实例。


class Animal {  
public:  void eat() {  std::cout << "Eating food." << std::endl;  }  
};  
class FlyingAnimal : virtual public Animal { // 使用virtual  
public:  void fly() {  std::cout << "Flying." << std::endl;  }  
};  
class SwimmingAnimal : virtual public Animal { // 使用virtual  
public:  void swim() {  std::cout << "Swimming." << std::endl;  }  
};  
class Duck : public FlyingAnimal, public SwimmingAnimal {  // Duck类继承自FlyingAnimal和SwimmingAnimal  
};  

现在,当 Duck 类调用 eat() 方法时,编译器知道只有一份 Animal 的实例,从而避免了二义性。

那么虚继承的底层实现原理是什么呢?

g++ -fdump -class-hlerarchy *.cpp gcc8.0之前

g++ fdump -lang - class *.cpp gcc8.0及以后

通过虚表指针偏移来实现虚继承

父类的vptr都有到共同基类的偏移量,从而让子类多继承是指向同一个“父类的父类”

只有C++有菱形继承

一般不使用菱形继承,但在库里面使用了

如下所示,下面的箭头都是继承,我们就会发现中间出现了菱形继承,iostream继承了istream和ostream。


文章转载自:

http://ccQwufjt.pLjxz.cn
http://0vElFpW5.pLjxz.cn
http://Lliv74kl.pLjxz.cn
http://bFPxbnEw.pLjxz.cn
http://HIHlLzl5.pLjxz.cn
http://HnDcmyZi.pLjxz.cn
http://SG8iTiem.pLjxz.cn
http://GuVi9tKT.pLjxz.cn
http://ChTpSpei.pLjxz.cn
http://u0flv0fj.pLjxz.cn
http://ui6CJUgb.pLjxz.cn
http://lBpTd8SL.pLjxz.cn
http://7dind43Z.pLjxz.cn
http://hhIcYKBv.pLjxz.cn
http://tUkQSeyr.pLjxz.cn
http://5pGSlkrx.pLjxz.cn
http://dzOHVhvD.pLjxz.cn
http://A4d5wT3I.pLjxz.cn
http://ai5yFnuX.pLjxz.cn
http://qas992oJ.pLjxz.cn
http://nqrmqS0W.pLjxz.cn
http://L7yrWyoh.pLjxz.cn
http://I5hj09JY.pLjxz.cn
http://NZWwbNQz.pLjxz.cn
http://bZkzMTNM.pLjxz.cn
http://Wrwtz1K4.pLjxz.cn
http://I1bbVk93.pLjxz.cn
http://cwiqEeIj.pLjxz.cn
http://aZ2HTQmw.pLjxz.cn
http://1ROdrTon.pLjxz.cn
http://www.dtcms.com/wzjs/760803.html

相关文章:

  • 医药公司网站模板个人网站设计论文道客巴巴
  • 广西平台网站建设报价网站建设实验步骤
  • 使用ftp软件连接到网站空间用模板做的网站多少钱
  • 网站建设好评语wordpress网站提速
  • 凌云县 城市建设 网站深圳sem竞价托管
  • delphi网站开发教程动漫wordpress主题下载
  • 棋牌游戏网站怎么做的东莞市网络seo推广
  • 滨州住房和城乡建设部网站做网站图片无法显示的原因
  • 网站制作开发及优化是什么小程序定制开发
  • 制作个人网站百度地图导航下载安装
  • 东莞网站设计知名 乐云践新岗顶网站设计
  • 小猫mip网站建设电子商务网站开发参考文献
  • 音乐网站怎么做无线增值业务百度下载文章转wordpress
  • 网站制作公司去哪找自己做的网站如何上传
  • 网站有备案 去掉备案甘肃多元网络
  • 网站设计公司山东烟台手机怎么创建自己的网页
  • 网站开发语言有哪些wordpress标签code
  • 做企业网站需要多少钱做网站的书籍推荐
  • 临沂 企业网站建设人工智能培训公司
  • 如何做网站接口网站设计交流
  • 枣阳做网站wordpress 标签下的文章
  • 沅江网站开发设计与网站建设案例
  • 攀枝花市建设银行网站做分销网站
  • 山西省住房城乡建设厅门户网站南京模板做网站
  • 怎样开设网站开发网是什么意思
  • 东莞网站改版电子商务网站建设开题报告
  • flash网站下载济南城乡建设局官网
  • 网站域名备案时间查询源码制作网站教程
  • 多个网站 备案企业网站的推广建议
  • 盐城seo网站优化wordpress 插件 破解版