在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
。
需要注意的是,多重繼承可能會帶來一些問題,比如名稱沖突(兩個基類有相同的成員函數或變量名)和二義性(派生類繼承了多個基類,這些基類之間存在相同的成員函數)。為了解決這些問題,可以使用作用域解析運算符 ::
來顯式指定調用的是哪個基類的成員函數。