這篇文章給大家介紹怎樣講述C++中的C++基類,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
成都創(chuàng)新互聯(lián)云計算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過13年的服務(wù)器租用、重慶服務(wù)器托管、云服務(wù)器、網(wǎng)絡(luò)空間、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗,已先后獲得國家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機、網(wǎng)絡(luò)空間、域名與空間、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
C++語言中有一個很重要的特性:Private派生確保C++基類中的方法只能被派生類的對象的方法間接使用,而不能被外部使用,除非這些方法已經(jīng)被重新定義,下面就進行詳細說明。
繼承是一個進程,通過繼承,一個對象可以獲得另一個對象的屬性(包括函數(shù)),并可向其中加入屬于自己的一些特征。作為C++語言的一種重要機制,用繼承的方法可以自動為一個類提供來自另一個類的操作和數(shù)據(jù)結(jié)構(gòu)。
進而使程序設(shè)計人員在一個一般的類的基礎(chǔ)上很快建立一個新的類,而不必從零開始設(shè)計每個類。當(dāng)一個類被其他的類繼承時,被繼承的類稱為基類,又稱為父類。繼承其他類屬性的類稱為派生類,又稱為子類。
一般情況下,繼承的進程起源于一個C++基類的定義,基類定義了其所有派生類的公有屬性。從本質(zhì)上講,基類具有同一類集合中的公共屬性,派生類繼承了這些屬性,并且增加了自己特有的屬性。從任何已存在的類繼承的實質(zhì)就是建造新的派生類。
從一個基類派生的繼承稱為單繼承,換句話說,派生類只有一個直接C++基類。單繼承聲明語句的常用格式為:
class 派生類名: 訪問控制關(guān)鍵字 基類名 { 數(shù)據(jù)成員和成員函數(shù)聲明 };
與此相對地,從多個基類派生的繼承稱為多繼承或多重繼承,也就是說,一個派生類有多個直接基類。在某些面向?qū)ο蟮恼Z言(如Java)中不支持類間的多重繼承而只支持單重繼承,即一個類至多只能有一個直接父類,因此實現(xiàn)類似的功能需要借助接口等其他機制。而在C++中提供了多重繼承的語法支持,使得問題變得簡單了許多。多重繼承聲明語句的常用格式為:
class 派生類名: 訪問控制關(guān)鍵字 基類名1, 訪問控制關(guān)鍵字 基類名2,... { 數(shù)據(jù)成員和成員函數(shù)聲明 };
除了多重繼承之外,一個派生類繼承多個基類還有一種方法,就是把派生類作為基類再次供別的類繼承,產(chǎn)生多層次的繼承關(guān)系。例如類A派生類B,類B派生類C,則稱類A是類B的直接基類,類B是類C的直接基類,類A是類C的間接基類。
類的層次結(jié)構(gòu)也叫做繼承鏈。還是上面的例子,當(dāng)建立類C的對象時,類A的構(gòu)造函數(shù)***被調(diào)用,接下來被調(diào)用的是類B的構(gòu)造函數(shù),***是類C的構(gòu)造函數(shù)。析構(gòu)函數(shù)的調(diào)用順序正好相反。當(dāng)一個派生類繼承有層次的類時,繼承鏈上的每個派生類必須將它需要的變量傳遞給它的基類。
在繼承聲明語句中,訪問控制關(guān)鍵字用于說明在基類定義中所聲明的成員和成員函數(shù)能夠在多大范圍內(nèi)被派生類所訪問。訪問控制關(guān)鍵字可為public, private或protected。如果訪問控制關(guān)鍵字為public。
則稱派生類從C++基類公有繼承,也稱公有派生。如果訪問控制關(guān)鍵字為private,則稱派生類從C++基類私有繼承,也稱私有派生?,F(xiàn)在筆者將公有繼承和私有繼承的具體區(qū)別列表如下。
通過上表,我們可以將兩種派生的特點總結(jié)如下:
基類成員 | 基類private成員 | 基類public成員 | ||
派生方式 | private | public | private | public |
派生類成員 | 不可見 | 不可見 | 可見 | 可見 |
外部函數(shù) | 不可見 | 不可見 | 不可見 | 可見 |
關(guān)于怎樣講述C++中的C++基類就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。