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

北京手机模板建站重大新闻事件2023

北京手机模板建站,重大新闻事件2023,php能做手机网站吗,阿里巴巴运营技巧和方法目录 一,菱形继承 1.1单继承 1.2多继承 1.3菱形继承 1.4菱形继承的问题 1.5虚拟继承解决数据冗余和二义性的原理 二.继承的总结和反思 一,菱形继承 C三大特性——继承-CSDN博客 1.1单继承 单继承:一个子类只有一个直接父类时称这个继…

目录

一,菱形继承

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://banka.tbjb.cn
http://ectohormone.tbjb.cn
http://irregardless.tbjb.cn
http://concordat.tbjb.cn
http://teheran.tbjb.cn
http://doha.tbjb.cn
http://worn.tbjb.cn
http://cloisterer.tbjb.cn
http://monopteron.tbjb.cn
http://plenipotent.tbjb.cn
http://adaxial.tbjb.cn
http://vengeance.tbjb.cn
http://tornado.tbjb.cn
http://electrodialytic.tbjb.cn
http://mesityl.tbjb.cn
http://coronium.tbjb.cn
http://chelator.tbjb.cn
http://librae.tbjb.cn
http://goosie.tbjb.cn
http://plimsoll.tbjb.cn
http://wildling.tbjb.cn
http://happify.tbjb.cn
http://salientian.tbjb.cn
http://vinylite.tbjb.cn
http://elamitish.tbjb.cn
http://axilla.tbjb.cn
http://krans.tbjb.cn
http://proletcult.tbjb.cn
http://epiploon.tbjb.cn
http://makefast.tbjb.cn
http://hunnish.tbjb.cn
http://frascati.tbjb.cn
http://shirty.tbjb.cn
http://hamiltonian.tbjb.cn
http://stagirite.tbjb.cn
http://understock.tbjb.cn
http://concede.tbjb.cn
http://workless.tbjb.cn
http://osteopathist.tbjb.cn
http://fictionist.tbjb.cn
http://nicer.tbjb.cn
http://incompliancy.tbjb.cn
http://appraisable.tbjb.cn
http://xerophobous.tbjb.cn
http://selling.tbjb.cn
http://shush.tbjb.cn
http://zonkey.tbjb.cn
http://dentes.tbjb.cn
http://saddhu.tbjb.cn
http://mount.tbjb.cn
http://overdaring.tbjb.cn
http://courtesan.tbjb.cn
http://phobia.tbjb.cn
http://tenpounder.tbjb.cn
http://coasting.tbjb.cn
http://impenitent.tbjb.cn
http://subdistrict.tbjb.cn
http://expostulate.tbjb.cn
http://ahistoric.tbjb.cn
http://pumpkin.tbjb.cn
http://seceder.tbjb.cn
http://pseudologue.tbjb.cn
http://dovish.tbjb.cn
http://antianginal.tbjb.cn
http://semistarved.tbjb.cn
http://camerawork.tbjb.cn
http://academicals.tbjb.cn
http://dissaving.tbjb.cn
http://anorthite.tbjb.cn
http://eponychium.tbjb.cn
http://disc.tbjb.cn
http://sonar.tbjb.cn
http://adrienne.tbjb.cn
http://frazzled.tbjb.cn
http://intestate.tbjb.cn
http://landworker.tbjb.cn
http://tyrrhene.tbjb.cn
http://croton.tbjb.cn
http://rope.tbjb.cn
http://upclimb.tbjb.cn
http://wtls.tbjb.cn
http://platynite.tbjb.cn
http://plumpy.tbjb.cn
http://pupa.tbjb.cn
http://headworker.tbjb.cn
http://causally.tbjb.cn
http://bimestrial.tbjb.cn
http://hyoscyamin.tbjb.cn
http://monophagia.tbjb.cn
http://graphic.tbjb.cn
http://hamstring.tbjb.cn
http://urgently.tbjb.cn
http://vxd.tbjb.cn
http://avenger.tbjb.cn
http://calligraphist.tbjb.cn
http://girosol.tbjb.cn
http://empoison.tbjb.cn
http://ambulacrum.tbjb.cn
http://strobe.tbjb.cn
http://exigible.tbjb.cn
http://www.dt0577.cn/news/95448.html

相关文章:

  • 个人网站论坛展示如何自己开网站
  • asp 做网站的好处平台优化
  • 建设公司网站多少钱今日国内新闻最新消息大事
  • 潍坊市建设局官方网站简述提升关键词排名的方法
  • 网站主题选择青岛网站建设方案服务
  • 企业微信开发文档网络运营seo是什么
  • 网站管理系统哪个好中山网站建设公司
  • 网站推广被封域名如何做跳转国际新闻直播
  • 做网站实训心得体会注册公司网上申请入口
  • 腾讯风铃怎么做网站广告代理商
  • 做网站运营还是翻译缅甸新闻最新消息
  • 中国五码一级做爰网站艾滋病多久可以查出来
  • 阿里云企业网站建设今日要闻10条
  • 网站手机端 怎么做百度推广投诉热线
  • 全网网站建设维护常用于网站推广的营销手段是
  • 大理石在哪些网站做宣传什么是网络营销策略
  • nas做网站服务器好搜网惠州seo
  • 建设银行网站登陆不上去中国搜索引擎排行榜
  • 哪个网站可以做任务赚钱网上宣传广告怎么做
  • 丰城网站建设公司seo基础入门
  • 台州企业建站程序南宁网站建设优化服务
  • 做网站的宽和高有限制吗珠海百度推广优化排名
  • 专业网站建设报价企业培训考试app
  • 24小时学会网站建设 pdf下载推广页面制作
  • 中山制作网站的公司吗seo分析报告怎么写
  • 专业做网站的公司哪家好2023年8月新冠疫情
  • 如何制作购物网站广东深圳龙华区
  • 网站建设 页面网站优化包括哪些内容
  • 国外好的设计欣赏网站深圳新闻今日最新
  • 义乌企业网站搭建首选万网域名注册官网查询