• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

菱形继承时 若没有使用条件编译及虚继承, 为什么会出现重定义啊!!

菱形继承时 若没有使用条件编译及虚继承, 为什么会出现重定义啊!!

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

你好。假设有a类为根类,另有两个类b,c分别继承了a,那么同时b,c也继承了a中的成员以及成员函数。此时通过多重继承的方法让d继承自b,c这就产生了所谓的菱形继承。
假设a中有一公有方法init();
b,c继承自a也都有init方法;
d继承自b,c;
此时假设用d生成对象x,x调用init()。编译器将会产生疑惑,这个init到底是b中的init还是c中的init,因为两者看上去是一样的(都继承自a)。
正是由于这个原因,所以才使用虚继承,保证后面不出现二义性。

使用道具 举报

发新帖

发布任务需求已有1031164位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!