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

学做网站格式工厂怎么开发网站

学做网站格式工厂,怎么开发网站,金融行业网站建设,wordpress 首页 缩略图单继承:一个子类只有一个父类 称为单继承 多继承:一个子类有两个或以上父类 称为多继承 菱形继承:两个派生类继承同一个基类,又有某个类同时继承者两个派生类。 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/438265.html

相关文章:

  • 网投怎么做网站怎样进行seo
  • 网站设计与开发的基本步骤包括哪些?宁波seo网络推广选哪家
  • 怎么样才能找到网站后台网址淄博seo培训
  • 用ps做nba网站教程手机如何创建网站
  • 廊坊网站设计制作网站推广引流最快方法
  • 公路建设查询网站苏州推广排名
  • 如何做伪原创文章网站网络营销的营销方式
  • petit模板wordpressseo网站优化详解
  • 福州做网站需要多少钱网络推广和网络销售的区别
  • 威海建设局网站楼盘信息公布宁波seo优化公司排名
  • 做孝道的网站的目的seo网站优化推广费用
  • 郑州模板网站建设苏州百度推广开户
  • 东莞一站式网站建设想学管理方面的培训班
  • b2b电子商务网站调研报告免费新浪体育世界杯
  • java做网站后台怎么样宁德市人力资源和社会保障局
  • 宿迁市住房和城乡建设局网站培训管理平台
  • 网站等级保护测评必须做吗短链接在线生成官网
  • 网站建设banner图武汉网络推广有限公司
  • 搜狗提交网站收录入口南京市网站seo整站优化
  • 网站模板如何修改域名吴江seo网站优化软件
  • html5做动态网站建设2023年7月最新疫情
  • 天津网站建设好公司平台推广是什么意思
  • 广州的十七做网站站点搜索
  • 做设计的一般用什么网站找素材win7优化
  • 中核二三公司是国企还是央企搜索引擎优化是指什么意思
  • 江门网站排名优化百度关键词怎么设置
  • 上海平台网站建设公司排名百度秒收录蜘蛛池
  • 潍坊市政府门户网站螺蛳粉营销策划方案
  • 西安专业手机网站建设价格天津网络推广公司
  • 武安专业做网站南昌seo推广