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

如何做公司网站空间免认证域名

如何做公司网站空间,免认证域名,免费网站建站凡科建站,wordpress 主题 google字体假设有一个问题,类似于鸭子这样的动物有很多种,如企鹅和鱿鱼,它们也可能会有一些共同的特性。例如,我们可以有一个叫做 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://www.dtcms.com/a/530949.html

相关文章:

  • 国内专业网站设计织梦网站下载
  • wordpress能否做网站微商城手机网站设计
  • 诸暨做网站广告的电话大通拓客软件官网
  • 优质网站网站备案icp
  • 滁州房地产网站建设网站黄山高端网站建设
  • 太原网站建设培训广州营销型网站
  • 免费网页制作网站建设网上书店网站建设毕业设计
  • 网站建设空间什么意思网站制作网站建设运营团队
  • 南京seo网站排名优化网站用html做框架asp做主页
  • 辽宁住房和城乡建设厅网站首页非凡网站建设平台网页
  • 国外源码网站网站开发有几种类型
  • 网站后台验证码出不来百度关键词自然排名优化公司
  • 用html做音乐网站深圳响应式网站建设哪家好
  • 做百度移动网站点击一个做外汇的网站叫熊猫什么的
  • wap网站要花多少钱wordpress海报插件
  • 专业的网站建设方案网站建设对企业的帮助
  • 3. 是网站建设的重点自己做的网站主页被人篡改
  • 什么大型网站用python做的线上商城介绍
  • 晋江网站有什么职业做网站发布后打不开
  • 网站建设一百互联贵州网站定制
  • 济南中建设计院 官方网站平台怎么推广
  • 广州市车管所网站建设购物网站的图片轮播怎么做
  • pHP可以做论坛网站吗重庆新闻论坛
  • 营口网站建设wordpress不能登录界面
  • asp与sql做网站别人做的网站不能用
  • php网站开发概念和简介免费行情软件app网站mnu
  • 合肥建网站怀宁做网站
  • 南京做网站公司哪家好煎蛋wordpress
  • 手机营销网站wordpress 命令插件
  • 北京市建设监理协会网站移动应用开发和软件技术的区别