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

河南网站建设技术公司网站建设与管理自简历

河南网站建设技术公司,网站建设与管理自简历,网站设计器,网站程序制作软件单继承:一个子类只有一个父类 称为单继承 多继承:一个子类有两个或以上父类 称为多继承 菱形继承:两个派生类继承同一个基类,又有某个类同时继承者两个派生类。 class Person{public:string _name; // 姓名};class Student :…
  • 单继承:一个子类只有一个父类 称为单继承

  • 多继承:一个子类有两个或以上父类 称为多继承

    在这里插入图片描述
  • 菱形继承:两个派生类继承同一个基类,又有某个类同时继承者两个派生类。

    在这里插入图片描述
  class Person{public:string _name; // 姓名};class Student : public Person{protected:int _stu_id; //学号};class Teacher : public Person{protected:int _emp_id; // 职工编号};class Assistant : public Student, public Teacher{protected:string _majorCourse; // 主修课程};
  • 这种结构会导致 基类的成员 在最派生类中出现两次,因为 两个派生类 各自继承了 基类的成员,而最派生类又继承了 这两个派生类。这可能会导致两个问题

    • 冗余性:即代码的重复。派生类会继承基类的成员。如果这些成员在两个基类中定义了相同的实现,那么在派生类中就会有重复的代码,浪费内存空间

    • 二义性:两个基类提供了相同的函数或数据成员,子类对象调用时确定不了调用哪个版本。

Assistant a ;
a._name = "阿杰"; // _name不明确,编译错误//我们可以指定 该成员变量的父类解决该问题:
a.Student::_name = "阿伟";
a.Teacher::_name = "淑慧";
//但依然没有解决数据冗余的问题,为了解决该问题,我们引用虚拟继承的概念:
img
  • 解决方法:虚拟继承

    如上面的继承关系,在 Student 和 Teacher 的继承 Person 时使用 虚拟继承,即可解决问题。另外需要注意:虚拟继承不要在其他地方去使用。

  class Person{public :string _name ; // 姓名};class Student : virtual public Person{protected :int _stu_num ; //学号};class Teacher : virtual public Person{protected :int _e_id ; // 职工编号};class Assistant : public Student, public Teacher{protected :string _majorCourse; // 主修课程};void Test (){Assistant a;a._name = "阿伟";}

上面的代码执行后,不会出错,程序会将Assistant a的_name 变量 改变

  • 虚拟继承的原理:

    虚拟继承使得 虚基类对象单独存储,由子类用指针访问,并不是之前的嵌入到每个派生类对象中。也就是说,当多个类继承同一个虚基类时,它们共享同一个虚基类对象。这个虚基类子对象只被构造一次,而不是被每个派生类分别构造,因此可以消除数据冗余和二义性。(需要注意的是,虚拟继承有一些性能上的开销,因为每次访问虚基类时需要间接寻址)

  • 虚继承对象的构造顺序:最远派生类优先即 最远派生类构造函数 优先调用 虚基类的构造函数

  class A { /* 虚基类 */ };class B : virtual public A { /* 中间派生类 */ };class C : virtual public A { /* 中间派生类 */ };class D : public B, public C { /* 最远派生类 */ };

在这里插入图片描述

​ (非虚继承的基类仍按常规顺序初始化)

http://www.dtcms.com/wzjs/792058.html

相关文章:

  • 科技公司网站制作模板深圳网站建设怎么样
  • 小众做的好的网站wordpress 数据库字段
  • 现在的网站怎样做推广wordpress微信订阅号
  • 企业网站建设招标技术标准安溪学校网站建设
  • 廊坊建站公司模板珠海网站建设 amp 超凡科技
  • 电脑建设网站在互联网访问精准营销定义
  • js网站统计海淘网站开发
  • 营销型网站建设技术指标wordpress文章列表显示摘要
  • app开发和网站开发哪个好百度点击率排名有效果吗
  • 什么网站推广比较好dw制作一个手机网站模板下载地址
  • 网站开发需要哪些资料重庆公司seo
  • 建设局网站新闻产品开发流程管理
  • 沧州高速公路建设管理局网站简捷的网站
  • 桌面上链接网站怎么做ajax 效果网站
  • 建设网站商城需要多少费用吗不申请域名可以 做网站吗
  • 网站建设佳木斯做网站都需要租服务器吗
  • 开发网站如何选需要黄页网址大全视频在线观看
  • 天河区pc端网站建设wordpress页眉logo链接
  • 网站开发下人员配置如何解决网站图片打开慢
  • 外省公司做网站备案为什么网站收录在百度突然没有了
  • 漯河做网站公司营销网站找什么公司做
  • 家具网站开发目的宁波海曙区建设局网站
  • 郑州公司网站建设哪家好用手机建网站
  • 大江网站建设58同城二手房个人出售
  • 营销型网站建设需要有什么功能网站没有建设好可以备案吗
  • 数据库和网站开发平面设计用到的软件有哪些
  • 自己做网站都需要什么网站建设管理员工工资多少钱
  • 姑苏网站制作pa66用途障车做网站
  • 代刷推广网站网站开发定价
  • 三联网站建设工作室哈尔滨网站制作推广