複製鏈接
請複製以下鏈接發送給好友

多繼承

(C++程序)

鎖定
多繼承(Multiple inheritance),即一個子類可以有多個父類,它繼承了多個父類的特性。
中文名
多繼承
外文名
Multiple inheritance
性    質
面向對象
領    域
編程
多繼承可以看作是單繼承的擴展。所謂多繼承是指派生類具有多個基類派生類與每個基類之間的關係仍可看作是一個單繼承。
多繼承下派生類的定義格式如下:
class <派生類名>:<繼承方式1><基類名1>,<繼承方式2><基類名2>,…
{
<派生類類體>
};
其中,<繼承方式1>,<繼承方式2>,…是三種繼承方式:public、private、protected之一。例如:
class A
{
};
class B
{
};
class C : public A, public B
{
};
其中,派生類C具有兩個基類(類A和類B),因此,類C是多繼承的。按照繼承的規定,派生類C的成員包含了基類A、B中成員以及該類本身的成員。
多繼承的構造函數
在多繼承的情況下,派生類的構造函數格式如下:
<派生類名>(<總參數表>):<基類名1>(<參數表1>),<基類名2>(<參數表2>),…
<子對象名>(<參數表n+1>),…
{
}
其中,<總參數表>中各個參數包含了其後的各個分參數表。
多繼承下派生類的構造函數與單繼承下派生類構造函數相似,它必須同時負責該派生類所有基類構造函數的調用。同時,派生類的參數個數必須包含完成所有基類初始化所需的參數個數。
派生類構造函數執行順序是先執行所繼承基類的構造函數,再執行派生類本身構造函數,處於同一層次的各基類構造函數的執行順序取決於定義派生類時所指定的各基類順序,與派生類構造函數中所定義的成員初始化列表的各項順序無關。也就是説,執行基類構造函數的順序取決於定義派生類時基類的順序。可見,派生類構造函數的成員初始化列表中各項順序可以任意地排列。