欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

【學(xué)習(xí)筆記】C++語(yǔ)言程序設(shè)計(jì)(鄭莉):繼承與派生-創(chuàng)新互聯(lián)

【學(xué)習(xí)筆記】C++語(yǔ)言程序設(shè)計(jì)(鄭莉):繼承與派生
  • 1. 類的繼承與派生
    • 1.1 派生類的定義
    • 1.2 派生類生成過(guò)程
  • 2. 訪問(wèn)控制
  • 3. 類型兼容規(guī)則
  • 4. 派生類的構(gòu)造和析構(gòu)函數(shù)
    • 4.1 構(gòu)造函數(shù)
    • 4.2 析構(gòu)函數(shù)
  • 5. 派生類成員的標(biāo)識(shí)與訪問(wèn)
    • 5.1 作用域分辨符
    • 5.2 虛基類

目前創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、阿克陶網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
1. 類的繼承與派生

所謂繼承就是從先輩處得到屬性和行為特征。類的繼承,是新的類從已有類那里得到已有的特性。從另一個(gè)角度來(lái)看,從已有類產(chǎn)生新類的過(guò)程就是類的派生。由原有類產(chǎn)生新類時(shí),新類便包含了原有類特征,同時(shí)也可以加入自己所特有的新特征。原有的類稱為基類或父類,產(chǎn)生的新類稱為派生類或子類。

  • 繼承的目的:實(shí)現(xiàn)代碼與設(shè)計(jì)的重用
  • 派生的目的:當(dāng)新的問(wèn)題出現(xiàn)時(shí),原有程序無(wú)法解決時(shí),需要對(duì)原有程序進(jìn)行改造
1.1 派生類的定義

派生類的一般定義語(yǔ)法為:

class 派生類名:繼承方式 基類名1,繼承方式 基類名2,...,繼承方式 基類名n{
	派生類成員聲明;
}
//假設(shè)基類Base1和Base2是已經(jīng)定義的類,則下面定義了Derived的派生類,該類從基類Base1和Base2派生而來(lái)
class Derived:public Base1,private Base2{public:
	Derived();
	~Derived();

一個(gè)派生類只有一個(gè)直接基類的情況,稱為單繼承;一個(gè)派生類,可以同時(shí)有多個(gè)基類,這種情況稱為多繼承。在類族中,直接參與派生出某類的基類稱為直接基類,基類的基類甚至更高層的基類稱為間接基類。

在派生類的定義中,處理要指定基類外,還需要指定繼承方式。繼承方式規(guī)定了如何訪問(wèn)從基類繼承的成員。在派生類的定義語(yǔ)句中,每一個(gè)繼承方式,只限定緊隨其后的基類。繼承方式關(guān)鍵字為:public, protected和private,分別表示公有繼承、保護(hù)繼承和私有繼承。如果不顯式的給出繼承方式關(guān)鍵字,系統(tǒng)的默認(rèn)值為私有繼承(private)。

前面的例子中對(duì)Base1是公有繼承,對(duì)Base2是私有繼承,同時(shí)聲明了派生類自己新的構(gòu)造函數(shù)和析構(gòu)函數(shù)。派生類成員是指除了從基類繼承來(lái)的所有成員之外,新增加的數(shù)據(jù)和函數(shù)成員。

1.2 派生類生成過(guò)程

派生新類的過(guò)程實(shí)際經(jīng)歷了3個(gè)步驟:吸收基類成員、改造基類成員和添加新的成員。

  • 吸收基類成員:類繼承中,第一步是將基類的成員全盤接收,這樣派生類實(shí)際上就包含了它的全部基類中除構(gòu)造和析構(gòu)函數(shù)之外的所有成員
  • 改造基類成員:對(duì)基類成員的改造包括兩個(gè)方面:一是基類成員的訪問(wèn)控制問(wèn)題主要依靠派生類定義時(shí)的繼承方式來(lái)控制;另一個(gè)是對(duì)基類數(shù)據(jù)或函數(shù)成員的覆蓋或隱藏。如果派生類聲明了一個(gè)和某基類成員同名的新成員(如果是成員函數(shù),參數(shù)表也要相同,參數(shù)不同的情況屬于重載),派生的新成員就隱藏了外層同名成員。
  • 添加新的成員:根據(jù)實(shí)際情況的需要,給派生類添 加適當(dāng)?shù)臄?shù)據(jù)和函數(shù)成員,來(lái)實(shí)現(xiàn)必要的新增功能。
2. 訪問(wèn)控制

基類的自身成員可以對(duì)基類中任何一個(gè)其它成員進(jìn)行訪問(wèn),但是通過(guò)基類的對(duì)象,就只能訪問(wèn)該類的公有成員。類的繼承方式有public、protected和private三種。不同的繼承方式,導(dǎo)致原來(lái)具有不同訪問(wèn)屬性的基類成員在派生類中的訪問(wèn)屬性也有所不同。這里的訪問(wèn)分為:一是派生類中的新增成員訪問(wèn)從基類繼承的成員。二是在派生類外部,通過(guò)派生類的對(duì)象訪問(wèn)從基類繼承的成員。

  • 公有繼承:當(dāng)類的繼承方式為公有繼承時(shí),基類的公有成員和保護(hù)成員的訪問(wèn)屬性在派生類中不變,而基類的私有成員不可直接訪問(wèn)。在類族之外只能通過(guò)派生類的對(duì)象訪問(wèn)從基類繼承的公有成員。無(wú)論是派生類的成員還是派生類的對(duì)象都無(wú)法直接訪問(wèn)基類的私有成員。
  • 私有繼承:當(dāng)類的繼承方式為私有繼承時(shí),基類中的公有成員和保護(hù)成員都以私有成員身份出現(xiàn)在派生類中,而基類的私有成員在派生類中不可直接訪問(wèn)。派生類的其它成員可以直接訪問(wèn)從基類繼承而來(lái)的公有和保護(hù)成員,但是在類族外部通過(guò)派生類的對(duì)象無(wú)法直接訪問(wèn)它們。
  • 保護(hù)繼承:保護(hù)繼承中,基類的公有成員和保護(hù)成員都以保護(hù)成員的身份出現(xiàn)在派生類中,而基類的私有成員不可直接訪問(wèn)。派生類的其它成員可以直接訪問(wèn)從基類繼承而來(lái)的公有和保護(hù)成員,但在類外部通過(guò)派生類的對(duì)象無(wú)法直接訪問(wèn)它們。
  • 私有繼承和保護(hù)繼承的異同:
    • 在直接派生類中,所有成員的訪問(wèn)屬性都是完全相同的
    • 如果派生類作為新的基類繼續(xù)派生時(shí),兩者就有了區(qū)別。假設(shè)Rectangle類以私有方式繼承了Point類后,Rectangle類又派生出Square類,那么Square類的成員和對(duì)象都不能訪問(wèn)間接從Point類中繼承來(lái)的成員。如果Rectangle類是以保護(hù)方式繼承了Point類,那么Point類中的公有和保護(hù)成員在Rectangle類中都是保護(hù)成員。Rectangle類再派生出Square類后,Point類中的公有成員和保護(hù)成員被Square類間接繼承后,有可能是保護(hù)成員或私有成員(按具體派生方式可知)。因此,Square類的成員有可能可以訪問(wèn)間接從Point類中繼承來(lái)的成員。即Point類中的保護(hù)成員有可能被它的派生類訪問(wèn),但是絕不可能被其它外部使用者訪問(wèn)。

3. 類型兼容規(guī)則

類型兼容規(guī)則是指在需要基類對(duì)象的任何地方,都可以使用公有派生類的對(duì)象來(lái)替代。類型兼容規(guī)則中所指的替代包括以下的情況:

  • 派生類的對(duì)象可以隱含轉(zhuǎn)換為基類對(duì)象
  • 派生類的對(duì)象可以初始化基類的引用
  • 派生類的指針可以隱含轉(zhuǎn)換為基類的指針

在替代之后,派生類對(duì)象就可以作為基類的對(duì)象使用,但只能使用從基類繼承的成員。

4. 派生類的構(gòu)造和析構(gòu)函數(shù)

由于基類的構(gòu)造和析構(gòu)函數(shù)不能被繼承,在派生類時(shí)中,如果對(duì)派生類新增的成員進(jìn)行初始化,就必須為派生類添加新的構(gòu)造函數(shù)。但是派生類的構(gòu)造函數(shù)只負(fù)責(zé)對(duì)派生類新增的成員進(jìn)行初始化,對(duì)所有從基類繼承下來(lái)的成員,其初始化工作還是由基類的構(gòu)造函數(shù)完成,同樣,對(duì)派生類對(duì)象的掃尾、清理工作也需要加入新的析構(gòu)函數(shù)。

4.1 構(gòu)造函數(shù)

構(gòu)造派生類的對(duì)象時(shí),就要對(duì)基類的成員對(duì)象和新增成員對(duì)象進(jìn)行初始化。在構(gòu)造派生類的對(duì)象時(shí),會(huì)首先調(diào)用基類的構(gòu)造函數(shù)來(lái)初始化它們的數(shù)據(jù)成員,然后按照構(gòu)造函數(shù)初始化列表中指定的方式初始化派生類新增的成員對(duì)象,最后才執(zhí)行派生類構(gòu)造函數(shù)的函數(shù)體。派生類構(gòu)造函數(shù)的一般語(yǔ)法形式為:

派生類名::派生類名(參數(shù)表):基類名1(基類1初始化參數(shù)表),...,基類名n(基類n初始化參數(shù)表),成員對(duì)象名1(成員對(duì)象1的初始化參數(shù)表),...,成員對(duì)象名 m(成員對(duì)象m初始化參數(shù)表){
	派生類構(gòu)造函數(shù)的其他初始化操作;
}

如果對(duì)基類初始化時(shí),需要調(diào)用基類的帶有形參表的構(gòu)造函數(shù)時(shí),派生類就必須聲明構(gòu)造函數(shù)。派生類構(gòu)造函數(shù)執(zhí)行的一般次序?yàn)椋?/p>

  • 調(diào)用基類構(gòu)造函數(shù),調(diào)用順序按照它們被繼承時(shí)聲明的順序
  • 對(duì)派生類新增的成員對(duì)象初始化,調(diào)用順序按照他們?cè)陬愔新暶鞯捻樞?/li>
  • 執(zhí)行派生類的構(gòu)造函數(shù)體
4.2 析構(gòu)函數(shù)

在派生過(guò)程中,基類的析構(gòu)函數(shù)也不能繼承下來(lái),如果需要析構(gòu),就要在派生類中聲明新的構(gòu)造函數(shù)。派生類的析構(gòu)函數(shù)的功能是在該類對(duì)象消亡之前進(jìn)行一些必要的清理工作。析構(gòu)函數(shù)沒(méi)有類型,也沒(méi)有參數(shù)。


5. 派生類成員的標(biāo)識(shí)與訪問(wèn)

在派生類中,成員可以按訪問(wèn)屬性劃分為:不可訪問(wèn)的成員、私有成員、保護(hù)成員和公有成員。

5.1 作用域分辨符

作用域分辨符 “::” 用來(lái)限定要訪問(wèn)的成員所在的類別名稱。一般的使用形式為:

類名::成員名                 //數(shù)據(jù)成員
類名::成員名(參數(shù)表)         //函數(shù)成員

如果派生類中聲明了與基類成員函數(shù)同名的新函數(shù),即使函數(shù)的參數(shù)表不同,從基類繼承的同名函數(shù)的所有重載形式也都會(huì)被隱藏。如果派生類的多個(gè)基類擁有同名的成員,同時(shí),派生類又新增這樣的同名成員,在這種情況下,派生類成員將隱藏所有基類的同名成員。

5.2 虛基類

當(dāng)某類的部分或全部直接基類是從另一個(gè)共同基類派生而來(lái)時(shí),在這些直接基類中從上一級(jí)共同基類繼承來(lái)的成員就擁有多個(gè)相同的名稱。在派生類的對(duì)象中,這些同名數(shù)據(jù)成員在內(nèi)存中同時(shí)擁有多個(gè)副本,同一個(gè)函數(shù)名會(huì)有多個(gè)映射??梢允褂米饔糜蚍直娣麃?lái)唯一標(biāo)識(shí)并分別訪問(wèn)它們,也可以將共同基類設(shè)置為虛基類,這時(shí)從不同的路徑繼承過(guò)來(lái)的同名數(shù)據(jù)成員在內(nèi)存中就只有一個(gè)副本,同一個(gè)函數(shù)名也只有一個(gè)映射。虛基類的聲明是在派生類的定義過(guò)程中進(jìn)行的,語(yǔ)法格式為:

class 派生類名:virtual 繼承方式 基類名

課程鏈接:https://www.bilibili.com/video/BV1iF411Y74v

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站標(biāo)題:【學(xué)習(xí)筆記】C++語(yǔ)言程序設(shè)計(jì)(鄭莉):繼承與派生-創(chuàng)新互聯(lián)
URL分享:http://aaarwkj.com/article44/csoihe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT定制開發(fā)、服務(wù)器托管虛擬主機(jī)、App開發(fā)微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管
欧美日韩av在线一区二区| 色婷婷久久五月中文字幕| 亚洲无综合素人在线观看| 99人妻精品一区二区| 国产精品日韩欧美久久久| 日韩国产精品激情一区| 久久久亚洲精品中文字幕蜜桃| 国产精品人妻在线av| 欧美日韩国产一区在线观看 | 熟女人妻精品一二三四| 国产欧美日韩亚洲综合在线| 国产av爆操黑丝美女| 国产超大超粗超爽视频| 婷婷亚洲五月伊人91| 精品国产欧美亚洲91| 日本高清中文精品在线不卡| 可以免费看的日韩黄色| 成人看片亚欧大片在线观看| 青青草青青草在线观看视频| 日本高清不卡中文字幕| 精品啪在线观看国产熟女| 日本欧美一区中文字幕| 国产 亚洲 一区 二区| 欧美乱与老熟妇视频观看| 日本人妻中文字幕一区| 国产精品18禁一区二区三区| 欧美精品久久在线观看| 欧美aⅴ精品一区二区三区| 国产黄色一区二区三区| 一区二区亚洲免费的视频| 高颜值美女后入内射视频| 日本少妇三级网站大全| 久久这里只有精品热免费| 色婷婷精品一区二区三区| 精品国产一区二区三区av在线| 亚洲精品欧美无人区乱码| 国产在线精品91国自产拍| 国产精品亚洲精品日韩在线| 看夫妻性生活免费视频| 人人妻人人澡人人爽精品日本| 日韩一二三四区免费观看|