繼承 多繼承

2021-09-26 11:09:12 字數 1117 閱讀 3169

//繼承 父類(基類)+ 新內容 = 子類(派生類)

//子類繼承父類,子類繼承父類所有的成員變數和成員函式 父類有的子類都有,子類沒有的可以加

//繼承方式 控制父類成員在子類中的訪問許可權:public、private、protected 格式 calss 子類:許可權 父類

//規則(繼承方式:public):

// 父類私有成員,子類不可訪問(繼承了,但不可訪問)

// 父類受保護成員,繼承後依然為受保護成員,可以類中訪問

// 父類公有成員,繼承後依然為公有成員,類中可以訪問,類外也可以訪問

//結構體繼承方式預設公有,類繼承方式預設私有

//父類友元函式不會被繼承

//父類的建構函式和析構函式可以被繼承,但是不可直接用於子類中

//子類繼承父類除了構造和析構之外的所有成員函式和成員變數(不能用而已)

//隱藏:假如父類成員/資料不符合要求,需要重新寫乙個函式或者變數 在子類中寫乙個函式覆蓋父類(重新父類函式,函式名和引數都一樣,不會構成過載),呼叫時呼叫的為子類重寫的函式,不再是父類函式

//子類的新成員變數、新成員函式:與父類無關係

//關於構造和析構,子類構造必須先呼叫父類的構造(使用引數列表)父類(x,y,z…)

// 子類的析構自動先呼叫 ,後呼叫父類的析構

//多繼承:乙個子類繼承多個父類(會繼承所有父類的所有成員) calss 子類:許可權 父類1,許可權 父類2…

// 關於構造:呼叫所有父類的構造(呼叫順序和繼承順序有關,先父類再子類)

// 關於成員:父類中有同名成員變數,使用:類::變數名 區分

// (一般重名,需要隱藏掉)

//繼承方式許可權大小排名:public–>protected–>private

class a

a(int _data, string _name)

~a(){}

void show()const };

class b :public a

b(int _age,int _data,string _name) :a(_data, _name)

void show()const };

int main()

繼承 多繼承

一 繼承 1 封裝 self引數傳入的是建立的物件,self可以直接將物件帶引數傳入類中方法,這種在物件中封裝資料,對類進行了優化的方法就叫封裝。2 當乙個繼承自另乙個累的時候,會先去子類裡面找,如果有先呼叫沒有去夫類找。1 class rectangle 矩形類 def init self,len...

繼承(單繼承 多繼承 菱形繼承 虛繼承)

一 單繼承 單繼承是一種 乙個子類只有乙個直接父類 的繼承關係。二 多繼承 多繼承是一種 乙個子類有兩個或兩個以上直接父類 的繼承關係。三 菱形繼承 菱形繼承由兩個 或以上 單繼承,乙個多繼承構成,結構如下 顯然,上例中assistant類多繼承了student和teacher兩個類,而studen...

繼承 多繼承 菱形虛擬繼承

繼承 繼承是由父類和子類 或稱之為基類與派生類 兩種角色構成,子承父業,就是說派生類會繼承基類的所有的成員,並擁有自己特有的成員。用一段 來解釋說明繼承關係 include using namespace std class base 基類 class derived public base 以共有...