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

门户网站开发公司平台2二级域名免费

门户网站开发公司平台,2二级域名免费,杭州设计 公司 网站建设,深圳网站建设公司电话复杂的菱形继承及菱形虚拟继承 复杂的菱形继承及菱形虚拟继承虚拟继承解决数据冗余和二义性的原理笔试面试题 复杂的菱形继承及菱形虚拟继承 单继承#xff1a;一个子类只有一个直接父类时称这个继承关系为单继承 多继承#xff1a;一个子类有两个或以上直接父类时称这个继… 复杂的菱形继承及菱形虚拟继承 复杂的菱形继承及菱形虚拟继承虚拟继承解决数据冗余和二义性的原理笔试面试题 复杂的菱形继承及菱形虚拟继承 单继承一个子类只有一个直接父类时称这个继承关系为单继承 多继承一个子类有两个或以上直接父类时称这个继承关系为多继承 菱形继承菱形继承是多继承的一种特殊情况。不推荐用坑 菱形继承的问题从下面的对象成员模型构造可以看出菱形继承有数据冗余和二义性的问题。在Assistant的对象中Person成员会有两份。 class Person { public:string _name; // 姓名 }; class Student : public Person { protected:int _num; //学号 }; class Teacher : public Person { protected:int _id; // 职工编号 }; class Assistant : public Student, public Teacher { protected:string _majorCourse; // 主修课程 }; void Test() {// 这样会有二义性无法明确知道访问的是哪一个Assistant a;a._name peter;//会报错Assistant::_name不明确// 需要显示指定访问哪个父类的成员可以解决二义性问题但是数据冗余问题无法解决a.Student::_name xxx;a.Teacher::_name yyy; }虚拟继承可以解决菱形继承的二义性和数据冗余的问题。如上面的继承关系在Student和Teacher的继承Person时使用虚拟继承即可解决问题。需要注意的是虚拟继承不要在其他地方去使用。 class Person { public:string _name; // 姓名 }; class Student : virtual public Person { protected:int _num; //学号 }; class Teacher : virtual public Person { protected:int _id; // 职工编号 }; class Assistant : public Student, public Teacher { protected:string _majorCourse; // 主修课程 }; void Test() {Assistant a;a._name peter; }虚拟继承解决数据冗余和二义性的原理 为了研究虚拟继承原理我们给出了一个简化的菱形继承继承体系再借助内存窗口观察对象成员的模型。 #include iostream using namespace std;class A { public:int _a; }; // class B : public A class B : virtual public A { public:int _b; }; // class C : public A class C : virtual public A { public:int _c; }; class D : public B, public C { public:int _d; }; int main() {D d;d.B::_a 1; d.C::_a 2;d._b 3;d._c 4;d._d 5;return 0; }不使用虚继承class C : public A 使用虚继承class C : virtual public A 笔试面试题 什么是菱形继承菱形继承的问题是什么 菱形继承是指在继承关系中存在一种特殊的结构其中一个派生类同时继承两个基类而这两个基类又共同继承同一个基类。这样形成的继承关系呈菱形因此得名菱形继承。什么是菱形虚拟继承如何解决数据冗余和二义性的 菱形虚拟继承是为了解决菱形继承中的数据冗余和函数二义性问题而引入的机制。通过使用虚拟继承(virtual)可以确保在菱形继承中共享基类的实例从而避免了数据冗余的问题。继承和组合的区别什么时候用继承什么时候用组合 继承Inheritance和组合Composition是面向对象编程中用于构建类之间关系的两种主要方式。 继承是一种is-a关系其中一个类可以继承另一个类的属性和行为。通过继承子类可以共享父类的成员变量和成员函数并且可以添加自己的特定功能。继承适用于具有层次结构的类其中子类是父类的特殊化。 组合是一种has-a关系其中一个类包含另一个类的对象作为成员变量。通过组合一个类可以使用其他类的对象来实现自己的功能而不需要继承其所有特性。组合适用于在一个类中使用其他类的功能而不需要与其形成层次结构。 当需要表示一种类与类之间的层次结构、子类是父类的特殊化关系时可以使用继承。继承可以提供代码重用和多态性的好处。当需要在一个类中使用另一个类的功能、将一个类作为另一个类的组成部分时可以使用组合。组合可以实现代码模块化和灵活性。 在选择继承或组合时需要考虑类之间的关系和需求。如果存在is-a关系且子类可以完全继承父类的属性和行为可以选择继承。如果存在has-a关系且一个类需要使用另一个类的功能可以选择组合。此外还应考虑代码的可维护性、扩展性和设计的灵活性。 本章完
http://www.w-s-a.com/news/498715/

相关文章:

  • 宁夏网站建设怎么样互联网 网站设计
  • 成都关键词seo推广平台手机端关键词排名优化软件
  • 学做软件的网站卡盟平台
  • 网站构建建设案例展示关于做服饰网站的首页
  • 如何建设网站论坛凡科建站手机版登录
  • 建设银行门户网站惠州公司网站建设价格
  • 用python开发网站网站如何取消验证码
  • 公司做企业网站互联网建网站
  • 建网站需要的费用公司注册后怎么做网站
  • 宣传电脑的网站开发运动网站建设教程
  • 网站建设公司都会有哪些花销做网站公司商丘
  • 网站风格有哪些软件定制和开发
  • 公司网络维护具体做什么河南网站推广优化公司哪家好
  • 中学生制作的网站常平哪里有招计算机网站开发的
  • 原创网站模版苏州响应式网站建设
  • 做海报在哪个网站可以找素材网址申请注册方法
  • 网站建设分哪些类别别人做的网站不能用
  • 做网站网站会怎么样全国高校校园网站联盟建设
  • 整站下载器 做网站地图地产项目网站设计
  • 创意设计网站公司手机wap网站建设多少钱
  • 甘肃省第八建设集团公司网站seo高级优化方法
  • 精美的商城网站介绍最多人用的wordpress子主题
  • 检察门户网站建设情况俄外长抵达北京
  • 老电脑做网站服务器网站在线留言如何做
  • 南宁广告公司网站建设小程序源码破解
  • 沛县做网站xlec网站建设开发方式包括哪些方面
  • 山西网站建设 哪家好四川城乡和建设厅网站
  • 有瀑布流的网站小型商城网站
  • 百石网怎么做网站二次开发软件
  • 网站域名是什么东西制作网页哪家好