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

邓州微网站开发公众号做视频网站

邓州微网站开发,公众号做视频网站,镇江网站建设联系思创,陕西做网站C棱形继承 在 C 中#xff0c;在使用 多继承 时#xff0c;如果发生了如果类 A 派生出类 B 和类 C#xff0c;类 D 继承自类 B 和类 C#xff0c;这时候就发生了菱形继承。 如果发生了菱形继承#xff0c;这个时候类 A 中的 成员变量 和 成员函数 继承到类 D 中变成了两…C棱形继承 在 C 中在使用 多继承 时如果发生了如果类 A 派生出类 B 和类 C类 D 继承自类 B 和类 C这时候就发生了菱形继承。 如果发生了菱形继承这个时候类 A 中的 成员变量 和 成员函数 继承到类 D 中变成了两份 一份来自 A–B–D 这条路径另一份来自 A–C–D 这条路径。如下图所示 在一个派生类中保留间接基类的多份同名成员虽然可以在不同的成员变量中分别存放不同的数据但大多数情况下这是多余的因为保留多份成员变量不仅占用较多的存储空间还容易产生命名冲突 假如类 A 有一个成员变量 a那么在类 D 中直接访问 a 就会产生歧义编译器不知道它究竟来自 A --B–D 这条路径还是来自 A–C–D 这条路径 为了解决菱形继承出现的数据冗余的问题C 提出了虚继承虚继承使得派生类中只保留一份间接基类的成员 C虚继承 虚继承的目的是让某个类做出声明承诺愿意共享它的基类 其中这个被共享的基类就称为虚基类Virtual Base Class菱形继承中的顶层类 就是一个虚基类 在这种机制下不论虚基类在继承体系中出现了多少次在派生类中都只包含一份虚基类的成员 虚继承关系如下图所示 观察这个新的继承体系我们会发现虚继承的一个不太直观的特征 必须在虚派生的真实需求出现前就已经完成虚派生的操作。在上图中当定义 D 类时才出现了对虚派生的需求但是如果 B 类和 C 类不是从 A 类虚派生得到的那么 D 类还是会保留 A 类的两份成员。 换个角度讲虚派生只影响从指定了虚基类的派生类中进一步派生出来的类它不会影响派生类本身。 在实际开发中位于中间层次的基类将其继承声明为虚继承一般不会带来什么问题。通常情况下使用虚继承的类层次是由一个人或者一个项目组一次性设计完成的。对于一个独立开发的类来说很少需要基类中的某一个类是虚基类况且新类的开发者也无法改变已经存在的类体系。 C 标准库中的 iostream 类就是一个虚继承的实际应用案例。iostream 从 istream 和 ostream 直接继承而来而 istream 和 ostream 又都继承自一个共同的名为 base_ios 的类是典型的菱形继承。此时 istream 和 ostream 必须采用虚继承否则将导致 iostream 类中保留两份 base_ios 类的成员。 iostream 继承体系如下图 使用案例 #include iostream using namespace std; // 间接基类A class A { protected:int m_a; }; // 直接基类B class B: virtual public A { protected:int m_b; }; // 直接基类C class C: virtual public A { protected:int m_c; }; //派生类D class D: public B, public C { public:void seta(int a){ m_a a; //命名冲突}void setb(int b){ m_b b; //正确}void setc(int c){ m_c c; //正确} void setd(int d){ m_d d; //正确} private:int m_d; }; int main() {cout 嗨客网(www.haicoder.net)\n endl;D d;return 0; } C虚继承构造函数 普通的 继承 时我们可以在子类直接显式的调用父类的 构造函数在 虚继承 中虚基类是由最终的派生类初始化的。 也就是说最终派生类的构造函数必须要调用虚基类的构造函数 对最终的派生类来说虚基类是间接基类而不是直接基类。这跟普通继承不同在普通继承中派生类构造函数中只能调用直接基类的构造函数不能调用间接基类的。
http://www.hkea.cn/news/14261901/

相关文章:

  • 大型网站建设建站模板保定网站设计网站
  • 萧山建站网站建设会遇到哪些问题
  • 做网站哪家好 青岛手机网站内容设计方案
  • 云南网站建设哪家好网站备案怎么更改吗
  • 公司官网用什么建站程序计算机女生就业方向
  • 余杭门户网站wordpress快速建站视频教程
  • 上海网站推广费用深圳平面设计招聘
  • 网站首页样式51栗子
  • 买一个成品网站多少钱阿里云注销网站
  • 东莞设计网站建设方案电子商务网站的开发方式
  • 单位网站建设维护论文企业网页建设公司费用怎么收
  • 网站建设 外包是什么意思网站建设软件下载
  • 水果门户网站建设加强公司门户网站建设方案
  • 占酷设计网站官网入口the7 wordpress哪个好
  • 西安自助建站系统宣传页免费模板
  • 图书网站建设费用明细网站制作 常州
  • 设计师接单网站微软手机做网站服务器吗
  • 关于网站建设的问题鹤壁建设企业网站公司
  • 河南金城建设工程有限公司网站网站建设推销话术
  • 做镜像网站wordpress 自定义js
  • 网站建设需要提供功能目录吗免费wordpress主机
  • 建设网站企业哪家好漯河企业网站建设
  • 厦门电商网站建设有口碑的网站建设
  • 网站开发技术大学教材宁德市人社局
  • 网站的特效代码微信最火公众号排行
  • 无锡做网站优化价格上海软件系统开发公司
  • 网站建设与管理专业课程网站建立费用多少钱
  • 墓地网站建设价格媒体平台化
  • 网站搭建的费用嵌入式软件开发前景怎么样
  • 免费个人博客建站网站优化外包顾问