C++类的多重继承

C++类的多重继承

讲解C++类继承的文章网上很多,但是关于类的多重继承(注意区别多继承和多重继承)的文章并不多。下面是我在写程序的时候遇到的问题以及通过自己实验得到的解决办法。

在使用类的继承的时候,一直有一个疑惑,假设基类为B,A类是B的派生类,C类是A类的派生类,D类是C类的派生类,那么像这种多重继承的关系,其函数调用关系是怎么样的呢。

假设在D类中需要调用函数fun()(D类中未定义fun函数),而fun函数在A,B,C类中均有定义,那么此时D类调用的究竟是哪个类中的函数呢?答案是C类,也就是说,调用的是其直接基类中的函数。依此可以推断,当派生类调用一个函数的时候,会从其直接继承的基类开始一直向更深层次的基类寻找函数的定义,直到找到该函数的定义为止。

上面的例子中,类的继承关系为B->A->C->D,那么若D类中要调用函数fun,程序会先从C类中找fun的定义,若没找到,则在A类中找,若还是没找到,则在B类中找。

当然,若D类中有fun函数的定义,则调用的是D类中的函数。

也可以在D类中使用 类名::fun() 来调用对应类中定义的fun函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值