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