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

.net 网站地图优化大师官网下载

.net 网站地图,优化大师官网下载,长沙网页制作团队,浙江同安建设有限公司网站目录 一#xff0c;菱形继承 1.1单继承 1.2多继承 1.3菱形继承 1.4菱形继承的问题 1.5虚拟继承解决数据冗余和二义性的原理 二.继承的总结和反思 一#xff0c;菱形继承 C三大特性——继承-CSDN博客 1.1单继承 单继承#xff1a;一个子类只有一个直接父类时称这个继…目录 一菱形继承 1.1单继承 1.2多继承 1.3菱形继承 1.4菱形继承的问题 1.5虚拟继承解决数据冗余和二义性的原理 二.继承的总结和反思 一菱形继承 C三大特性——继承-CSDN博客 1.1单继承 单继承一个子类只有一个直接父类时称这个继承关系为单继承 1.2多继承 多继承一个子类有两个或以上直接父类时称这个继承关系为多继承 1.3菱形继承 菱形继承菱形继承是多继承的一种特殊情况 1.4菱形继承的问题 菱形继承的问题从下面的对象成员模型构造可以看出菱形继承有数据冗余和二义性的问题。在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; 错误// 需要显示指定访问哪个父类的成员可以解决二义性问题但是数据冗余问题无法解决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; } 1.5虚拟继承解决数据冗余和二义性的原理 为了研究虚拟继承原理我们给出了一个简化的菱形继承继承体系再借助内存窗口观察对象成员的模型。 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; }下图是菱形继承的内存对象成员模型这里可以看到数据冗余 下图是菱形虚拟继承的内存对象成员模型这里可以分析出D对象中将A放到的了对象组成的最下面这个A同时属于B和C那么B和C如何去找到公共的A呢这里是通过了B和C的两个指针指向的一张表。这两个指针叫虚基表指针这两个表叫虚基表。虚基表中存的偏移量。通过偏移量可以找到下面的A。 // 有人可能会有疑问为什么D中B和C部分要去找属于自己的A那么大家看看当下面的赋值发生时d是不是 要去找出B/C成员中的A才能赋值过去 D d; B b d; C c d; 下面是上面的Person关系菱形虚拟继承的原理解释 二.继承的总结和反思 1. 很多人说C语法复杂其实多继承就是一个体现。有了多继承就存在菱形继承有了菱形继承就有菱形虚拟继承底层实现就很复杂。所以一般不建议设计出多继承一定不要设计出菱形继承。否则在复杂度及性能上都有问题。 2. 多继承可以认为是C的缺陷之一很多后来的语言都没有多继承如Java
http://www.hkea.cn/news/14402036/

相关文章:

  • 网站漂浮物怎么做wordpress头像自定义
  • 网站建设的技术电子商务网站租用服务器费用
  • 网站上传程序流程wordpress减肥主题
  • html5手机网站源码下载苏州百度推广服务中心
  • 供求网站建设企业网站建设与管理简述
  • 个人营销网站网站建设常识
  • 免费dedecms企业网站模板微网站建设找哪家
  • dw网站建设基本流程小企业怎么建网站平台
  • 网站抽奖模板自己做的网站怎么放上网
  • 农业网站建设方案上海网站建设优化
  • wordpress调用网站最新文章wordpress 网站 上传
  • 建站行业都扁平化设计网站开发 工作量
  • 把手机网站做成app产品网站别人是如何做优化的
  • 建立一个做笔记的网站网站流量利用
  • 建设网站及域名费用wordpress qq空间
  • 大气的企业网站设计WordPress说说心情
  • 丽水市莲都建设分局网站东莞证券
  • m开头的手机网站怎么做营销平台是什么意思
  • 网站换域名要怎么做怎么在百度建设一个网站
  • 环保材料 技术支持 东莞网站建设上海专业建设网站制作
  • 外贸通道支持asp的网站吗wordpress进不后台
  • 网站服务器租用选择建设网站如
  • 网站留言短信通知虚拟主机部署网站
  • h5 网站开发流程图公司展示网站制作
  • 基于漏斗模型网站关键路径分析wordpress 关闭warning
  • 网站图片布局长春网站长春网络推广建设
  • 深圳网站设计比较好的公司网站建设 课题研究的背景
  • 医院内外网站建设网站收录方法
  • 学商务网站建设的感想wordpress弹幕播放器插件
  • 可信网站认证 代理商如何创建自己的博客网站