第三次課堂總結(10 10)(繼承與派生)

2021-10-10 14:08:03 字數 1639 閱讀 8754

第三次課堂總結:

1.繼承和派生類的概念

2.訪問許可權控制

3.派生類的建構函式和析構函式

4.多繼承

繼承的概念

類的繼承就是根據乙個類建立乙個新類的過程,以乙個類創造新類,新類包含已有類的所有成員,而且新類可以根據需要新增新的成員。通常將用來派生新類的類稱為基類,又稱為父類,而將派生出來的新類稱為派生類,又稱為子類。

訪問許可權控制

就如同類與物件中有訪問許可權控制的設計一樣,對於派生類也是具有訪問許可權控制的。公有繼承、私有繼承和保護繼承,分別用關鍵字public、private和protected表示。

不同繼承方式的影響主要體現在:

1、派生類成員對基類成員的訪問控制。

2、派生類物件對基類成員的訪問控制。

公有繼承的訪問許可權:

基類的public和protected成員的訪問屬性在派生類中保持不變,但基類的private成員不可訪問。派生類中的成員函式可以直接訪問基類中的public和protected成員,但不能訪問基類的private成員。

私有繼承的訪問許可權:

基類的public和protected成員都以private身份出現在派生類中,但基類的private成員不可訪問。派生類中的成員函式可以直接訪問基類中的public和protected成員,但不能訪問基類的private成員。

保護繼承的訪問許可權:

基類的public和protected成員都以protected身份出現在派生類中,但基類的private成員不可訪問。派生類中的成員函式可以直接訪問基類中的public和protected成員,但不能訪問基類的private成員。

總結而言不論哪種繼承方式,派生類新定義成員均不能直接訪問基類的私有成員,只能通過基類的公有成員函式或保護成員函式訪問基類的私有資料成員,繼承的分別主要體現在基類的成員以何種身份出現在派生類中。而基類的私有成員函式根本就不會繼承,更談不上使用。

派生類的建構函式和析構函式

派生類的建構函式

基類的建構函式不被繼承,需要在派生類中自行宣告。但是宣告過程中只需要對新增成員的初始化,基類繼承而來的成員的初始化在基類中完成,類似於兒子繼承父親已經思考而得出的結論。構造順序類似與一般建構函式由上至下,首先呼叫基類的建構函式,再呼叫物件成員類(如果有物件成員)的建構函式,最後呼叫派生類的建構函式。

派生類的析構函式

類似於基類的建構函式不被繼承,派生類中的建構函式也需要自行宣告,呼叫順序也類似於一般的析構函式由下到上:先呼叫派生類的析構函式,再呼叫物件成員類的析構函式(如果有物件成員),最後呼叫基類的析構函式。

多繼承

多繼承出現的環境類似於某人繼承多個人的思想,因而無法用單繼承的基類與派生類來進行描述,派生類可能以不同的繼承形式繼承了多個基類的成員,也就取得了不同的訪問許可權。其構造順序為:呼叫順序:先呼叫所有基類的建構函式,再呼叫派生類的建構函式。

虛基類

虛基類的設立主要是為了解決多繼承中造成的二義性問題,因為可能出現基類與派生類之間,或基類之間出現同名成員,此時由於多繼承,就很難分辨到底是從哪乙個基類繼承過來的成員。故將中間環節設定成虛基類,從不同的路徑繼承過來的該類成員在記憶體中只擁有乙個副本,從而解決了同名成員的唯一標識問題。

第三次課堂總結

嵌入式linux開發工具 vim,gcc,gdb,make vim 文字編輯器 的基本操作 1 進入vim編輯器 從命令列提示符 輸入 vim 檔名 回車 2 退出vim編輯器,請輸入以下命令放棄所有修改 q 回車 或者輸入以下命令儲存所有修改 wq 回車 3 在正常模式下刪除游標所在位置的字元,請...

ACM第三次練習 1010

題意 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?思路 搜尋題的感覺,前面幾個數為1,1,2,3,第五個可以這樣考慮 有些走法是和到第四個一樣的,只是最後加了一步,這樣f 5 f 4 x,x表示其他的走法,到第五級時不是走兩步就是一步,一步剛才已經考慮...

ACM第三次練習 1010

題意 從1走到2有最短路為定值,注意到題目不是求最短路有多少條,而是,假如有一條a到b的路,而b到家的最短路比a到家的最短路要小,那麼就可以從a到b,b到家,這可以算作一條路可走。求共有多少條這樣的路從1點到家2。思路 先用 digkstra演算法求出各點到2 1的最短距離 同時存貯其它點到2的最短...