在C++中,多重繼承允許一個類從多個基類中繼承成員。這有助于實現代碼復用,因為你可以從已有的類中繼承方法和屬性。要實現多重繼承,只需在類定義中使用冒號分隔多個基類名稱。以下是一個簡單的示例:
#include <iostream>
// 基類1
class Base1 {
public:
void methodBase1() {
std::cout << "Method from Base1" << std::endl;
}
};
// 基類2
class Base2 {
public:
void methodBase2() {
std::cout << "Method from Base2" << std::endl;
}
};
// 派生類,從Base1和Base2多重繼承
class Derived : public Base1, public Base2 {
public:
void methodDerived() {
std::cout << "Method from Derived" << std::endl;
}
};
int main() {
Derived d;
d.methodBase1(); // 輸出: Method from Base1
d.methodBase2(); // 輸出: Method from Base2
d.methodDerived(); // 輸出: Method from Derived
return 0;
}
在這個例子中,Derived
類從 Base1
和 Base2
多重繼承。因此,Derived
類可以使用 Base1
和 Base2
的公共方法。這有助于減少代碼重復,提高代碼可維護性。
然而,多重繼承也可能導致一些復雜的問題,如二義性和菱形繼承問題。為了解決這些問題,C++引入了虛繼承(virtual inheritance)的概念。虛繼承可以確保在派生類中只有一個基類的實例,從而避免二義性和菱形繼承問題。