[笔记] 多继承下不同基类之同名函数的使用

当派生类从两个或更多基类继承时,如果基类中有同名函数,会导致调用歧义。解决办法包括:1) 在调用时指定基类作用域,如`A::func()`或`B::func()`;2) 使用`using`声明引入基类同名函数到派生类作用域,使得重载解析生效。这两种方法不影响虚函数的覆盖机制。
摘要由CSDN通过智能技术生成

多继承下两个以上基类有相同名称的成员函数时,派生类对象引用该名称函数时,若不做任何处理,将不能正常工作。其原因在于,重载规则不适用于跨越多个类的情况。有两种基本的方法:一是使用时明确指出用到哪个基类的同名函数;二是用using声明把不同基类的同名函数引入到一个公共作用域中。

第一种方法举例。

class A {

public:

       int func ( int );

       void func ( char );

       // ...

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值