C支持多继承即允许一个类同时继承多个类。关于多继承一直以来争议不断有一部分人认为多继承会带来大量的问题为了解决这些问题会使得语言本身变得非常复杂因此应当避免。另外一派认为多继承在某些场景下可以起到非常关键的作用应当予以支持。关于多重继承是好是坏这是一个非常复杂的问题网上历来争议不断。因此不过多阐述感兴趣的同学可以查阅一下相关资料。仅仅从实际支持来看目前市面上大部分的语言包括Java仅支持单继承只有C等少数语言支持多继承。这和C的理念也有关即认定不能通过减少语言特性来增强语言的表达力。看完争议之后我们来看看究竟什么是多继承呢我们来看一段代码案例1234567891011classA{public:voidfuncA();};classB{private:boolfuncB()const;};classC:publicA,publicB{ ... };在这段代码当中我们定义了两个类A和B然后我们创建了一个类C同时继承了A和B。这就是多继承这里要注意一点我们必须用关键字public来限定每一个基类否则的话编译器会默认这是一个私有继承。如果我们稍微修改一下代码就会出现一些问题比如1234567891011classA{public:voidfunc();};classB{private:boolfunc()const;};classC:publicA,publicB{ ... };在上面这个例子当中A和B都包含了函数func在下面的执行语句当中会报错。12C c;c.func();虽然B中的func函数是私有的但对于编译器来说依然是有歧义的。如果想要消除歧义我们可以这样调用c.A::func()。当多继承的父类拥有更高的继承层级的时候可能会出现更复杂的问题比如多继承菱形。也就是多个类之间的继承关系构成了一个抽象意义上的菱形比如我们参考一下C Primer中的例子在上面这张图当中Singer和Waiter都继承了Worker而SingingWaiter同时继承了Singer和Waiter。从图上来看这似乎没什么问题但在实现上问题不少。比如说对于SingingWaiter类来说它当中包含了多少Worker呢答案是有两个从Singer这边继承了一个Worker从Waiter又继承了一个Worker。那么我们这样写就会出现问题12SingingWaiter sw;Worker *p sw;通常这种赋值的时候会将基类指针设置成派生类中基类对象的地址但由于sw对象当中包含两个Worker对象有两个地址所以也会导致歧义。我们可以使用强制转换的方式消除歧义123SingingWaiter sw;Worker *p (Singer*) sw;Worker *p (Waiter*) sw;但显然这样的方法虽然能够解决问题到此这篇关于C 多继承详情介绍的文章就介绍到这了
NZSM NEWS DESK · 商丘建筑用工观察
C++ 多继承详情介绍
编辑说明
本文由 NZSM 编辑部根据公开信息与项目走访整理,不是官方文件原文,行文尽量用大白话。
资料来源
行业公开通知、商丘属地项目现场走访、学员与用工单位反馈,三方凑在一起核对过。
免责声明
涉及政策、考情的内容仅供参考,具体以官方发布为准,办理前请先核对原文。
转载合作
需要转载或谈合作,发邮件到 809451989@qq.com,注明出处,咱们好商量。
PATH · 从备考到上岗
文章里说到的这件事,落到个人身上就四步
第一步
1
对条件
学历、工作年限、年龄先对照一遍,缺材料早补,别到报名才发现。
第二步
2
约考试
盯紧当次通知,选最近的考期,科目大纲先过一遍心里有数。
第三步
3
拿证备案
成绩出来后按流程领证,上岗前把备案材料交到项目上。
第四步
4
持证上岗
证带在身上、台账挂在工地,岗位核验才不会卡壳。
No.3198
CentOS 7 离线部署 conntrack-tools 1.4.4:12个依赖包完整清单与自动化脚本 No.3197
Sinkhorn算法Python实战:5行代码计算Wasserstein距离,正则化参数λ调优指南 No.3196
AreaCity-JsSpider-StatsGov 2026.04 数据转换实战:CSV 转 SHP/GeoJSON/SQL 3 种格式全流程
READ MORE · 延伸阅读
接着往下翻,这几篇说的是一回事
本文提到的政策、岗位或考试安排,下面几篇里还有更细的说法,随手接着看。