对于继承关系中得函数得同名作用域问题,现在已经清楚编译器是如何去对作用域进行查找的了,但是我们依然需要了解在继承和虚函数的关系中,我们的同名e问题是怎样的。
参考下面一段代码:
上面的继承关系中,派生类和基类中的函数出现了同名的问题,这时,派生类中的同名函数将会遮掩掉所有基类中的同名函数。如下的用法将会更加清晰:
即使派生类中的函数和基类中的有所不同,但是在派生类对象中,也无法调用基类中的同名函数。
使用using避免同名函数遮掩问题
我们可以使用using声名将派生类中的同名函数引入到派生类中,这样便能解决基类中的函数同名,但是参数不同的函数被遮蔽的问题。
利using声名显示的将基类中的同名函数引入到派生类中,这样当我们使用不同的参数同名参数时,我们便能调用相应的参数匹配的函数。
选择继承某个方法
但是,有时我们仅是希望继承基类中的某个函数,因此,我们可以采用私有的方式进行继承,然后将私有继承的函数进行封装,这样我们看起来就像是仅是继承了基类中的某个函数而已。