在C++中,多重继承可以通过在派生类的定义中使用逗号分隔的基类列表来实现。下面是一个示例代码:
class Base1 {
public:
void func1() {
cout << "Base1::func1()" << endl;
}
};
class Base2 {
public:
void func2() {
cout << "Base2::func2()" << endl;
}
};
class Derived : public Base1, public Base2 {
public:
void func3() {
cout << "Derived::func3()" << endl;
}
};
int main() {
Derived d;
d.func1(); // 调用Base1的成员函数
d.func2(); // 调用Base2的成员函数
d.func3(); // 调用Derived的成员函数
return 0;
}
在上面的代码中,我们定义了两个基类 Base1
和 Base2
,然后在派生类 Derived
的定义中使用了逗号分隔的基类列表 public Base1, public Base2
。这样,Derived
类就同时继承了 Base1
和 Base2
的成员函数。
在 main
函数中,我们创建了一个 Derived
类的对象 d
,然后可以通过 d
调用继承自基类的成员函数 func1
、func2
和 func3
。
需要注意的是,多重继承可能会带来一些问题,比如名称冲突(两个基类有相同的成员函数或变量名)和二义性(派生类继承了多个基类,这些基类之间存在相同的成员函数)。为了解决这些问题,可以使用作用域解析运算符 ::
来显式指定调用的是哪个基类的成员函数。