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

佛山顺德网站制作公司哪家好创建小型网站的步骤

佛山顺德网站制作公司哪家好,创建小型网站的步骤,龙岗网站建设公司网络服务,让wordpress文章页面显示分类标签一.什么是菱形继承 菱形继承是多继承的一种特殊情况#xff0c;一个类有多个父类#xff0c;这些父类又有相同的父类或者祖先类#xff0c;那么该类就会有多份重复的成员#xff0c;从而造成调用二义性和数据冗余。 class Person {public:Person(){cout P…一.什么是菱形继承 菱形继承是多继承的一种特殊情况一个类有多个父类这些父类又有相同的父类或者祖先类那么该类就会有多份重复的成员从而造成调用二义性和数据冗余。 class Person {public:Person(){cout Person构造 endl;} public:int _name 0;int _age 0; };class Student : public Person {public:Student(){cout Student构造 endl;}int _stuid 0; };class Teacher : public Person { public:Teacher(){cout Teacher构造 endl;}int _jobid 0; };class Assistant : public Student, public Teacher { public:Assistant(){cout Assistant构造 endl;}int _task 0; }; int main() {Assistant a;//a._name;//二义性:访问Student的_name还是Teacher的_name呢?//需要指定类域访问a.Student::_name 1;a.Student::_age 2;a._stuid 3;a.Teacher::_name 4;a.Teacher::_age 5;a._jobid 6;a._task 7;return 0; } 从a的内存布局可以看到a中有两份_name和_age它们是从Student和Teacher类继承下来的。二义性的问题可以通过指定类域访问解决,但数据冗余的问题是无法规避的,必须引入新的技术——虚继承  二.虚继承的用法 只需在继承那个祖先类时加上关键字virtual即可 class Person {public:Person(){cout Person构造 endl;} public:int _name 0;int _age 0; };class Student : virtual public Person {public:Student(){cout Student构造 endl;}int _stuid 0; };class Teacher : virtual public Person { public:Teacher(){cout Teacher构造 endl;}int _jobid 0; };class Assistant : public Student, public Teacher { public:Assistant(){cout Assistant构造 endl;}int _task 0; }; int main() {Assistant a;a.Student::_name 1;a.Student::_age 2;a._stuid 3;a.Teacher::_name 4;a.Teacher::_age 5;a._jobid 6;a._task 7;return 0; }虚继承前 虚继承后  可以看到Person构造函数只调用了一次。 再来看看虚继承后a的内存分布 虚继承后重复的那部分成员被单独拎了出来只有一份此时就不存在二义性的问题了。a.Student::_namea.Student::_namea._name访问的是同一份数据。同时也解决了数据冗余的问题。  三.虚继承的原理 Student和Teacher中多出的这两个东西是什么呢这似乎是一个地址那我们在内存中看一看注意是小端存储低字节存低位数据高字节存高位数据故地址应该为007e9b4c和007e9b54 注意这是16进制故第一个数 是20第二个数是12。 在看看上面的内存分布会发现006ff8d0这个地址加上20006ff8d8加上12刚好是006ff8e4也就是重复的Person那部分变量的起始地址。 Assistant对象中将Person放到的了对象组成的最下面这个Person同时属于Student和Teacher给Student和Teacher都添加一个指针指向的一张表。这两个指针叫虚基表指针这两个表叫虚基表。虚基表中存了偏移量通过偏移量可以找到下面的Person。事实上虚基表中存放了两个数据第二个数是偏移量第一个数与多态中的虚表有关这里不作展开后面的多态会讲到。
http://www.hkea.cn/news/14316791/

相关文章:

  • 个人做商贸网站建立网站用英语怎么说
  • wordpress建站模版wordpress页面侧边栏
  • 网站建设书 模板下载wordpress 4.5.2 中文
  • 企业网站标题优化网站制作网站做网
  • 社交网站建设公司书画艺术网站建设概况
  • 重庆网站空间主机评价36氪网站是用什么做的
  • 滨海做网站哪家好滨江网站制作
  • 网站建设大数据网页设计培训班需要多久
  • wordpress建m域名网站上海今天最新发布会
  • 怎么做购物平台网站酷站是什么网站
  • 网站改版对seo影响wordpress数据库修改
  • 网站开发软件有哪些免费网站建设公司六安
  • 可以做网站的域名后缀开发app需要钱吗
  • 网站建设吗网站后台登录不进去
  • 南通网站建设外包wordpress网站500
  • 做网站的系统功能需求wordpress如何站点
  • 深圳网站建设怎么选择重庆建设工程安全协会网站
  • 百度智能门户建站怎么样wordpress如何网站顶部右侧广告
  • 国内使用vue做的网站商丘猎狐网络
  • 后缀为net的网站有哪些云服务器哪家好
  • html5在线网站网站建站公司一站式服务
  • wordpress商业网站wordpress联系方式插件
  • 深圳市建设银行网站wordpress页面不加载主题js
  • 威海企业网站建设移动端网站建设需要注意哪些问题
  • 对重庆电子政务网站建设评价长沙市旅游景点
  • 广州信科做网站成都地铁小程序
  • 网站 多个ip 备案建设工程合同协议书
  • 怎样做企业营销网站男女做床上网站
  • 福田做棋牌网站建设多少钱完整php网站开发
  • 深圳网站优化怎么做做a 免费网站