c++之繼承

這兩天看了c++繼承相關(guān)的知識(shí),現(xiàn)將要點(diǎn)總結(jié)如下:

為什么要繼承?

為避免代碼的重復(fù),減少程序員的工作量,采用繼承的方式將父類的數(shù)據(jù)成員和成員函數(shù)傳給子類,使得子類不用定義就能擁有相關(guān)成員。

繼承的方式:

公有繼承public
保護(hù)繼承protected
私有繼承private

繼承方式 基類的public成員 基類的protected成員 基類的private成員
public 變?yōu)閜ublic成員 變?yōu)閜rotected成員 不可見(jiàn)
protected 變?yōu)閜rotected成員 變?yōu)閜rotected成員 不可見(jiàn)
private 變?yōu)閜rivate成員 變?yōu)閜rivate成員 不可見(jiàn)

什么是隱藏?

父類A和子類B中定義了同名的數(shù)據(jù)成員和成員函數(shù)時(shí),子類B中的成員函數(shù)和數(shù)據(jù)成員會(huì)隱藏掉父類A中的成員。體現(xiàn)在當(dāng)實(shí)例化B的對(duì)象后,該對(duì)象只能訪問(wèn)B中定義的成員函數(shù),而A中的同名成員函數(shù)雖然繼承到B中,但并不能被B的實(shí)例訪問(wèn)。若一定要通過(guò)B的實(shí)例訪問(wèn)A中同名成員,必須要加上父類的類名。

注意:父類和子類中的同名函數(shù),即使各自含有不同的參數(shù),子類的實(shí)例仍不能訪問(wèn)父類中與之同名的成員函數(shù)

多繼承和多重繼承

  • 多繼承:指一個(gè)子類C,既繼承了父類A,又繼承了父類B
  • 多重繼承:指子類C繼承父類B,而B(niǎo)又繼承父類A
  • 菱形繼承:繼承與同一個(gè)類的兩個(gè)類,又同時(shí)繼承給下一個(gè)類

虛繼承

虛擬繼承是多重繼承中特有的概念。虛擬基類是為解決多重繼承而出現(xiàn)的。如:類D繼承自類B1、B2,而類B1、B2都繼承自類A(菱形繼承),因此在類D中兩次出現(xiàn)類A中的變量和函數(shù)。為了節(jié)省內(nèi)存空間,可以將B1、B2對(duì)A的繼承定義為虛擬繼承,而A就成了虛擬基類。實(shí)現(xiàn)的代碼如下:

class A

class B1:public virtual A;

class B2:public virtual A;

class D:public B1,public B2;

注意:虛擬繼承在一般的應(yīng)用中很少用到,所以也往往被忽視,這也主要是因?yàn)樵贑++中,多重繼承是不推薦的,也并不常用,而一旦離開(kāi)了多重繼承,虛擬繼承就完全失去了存在的必要因?yàn)檫@樣只會(huì)降低效率和占用更多的空間。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 結(jié)構(gòu)體和共同體的區(qū)別。 定義: 結(jié)構(gòu)體struct:把不同類型的數(shù)據(jù)組合成一個(gè)整體,自定義類型。共同體uni...
    breakfy閱讀 2,279評(píng)論 0 22
  • Advanced Language Features 知識(shí)點(diǎn):一. static修飾符 static修飾符可以用來(lái)...
    風(fēng)景涼閱讀 510評(píng)論 0 0
  • Win7下如何打開(kāi)DOS控制臺(tái)? a:開(kāi)始--所有程序--附件--命令提示符 b:開(kāi)始--搜索程序和文件--cmd...
    逍遙嘆6閱讀 1,724評(píng)論 4 12
  • 世上一切事物,只是百千萬(wàn)面大大小小的鏡子,重疊對(duì)照,反射又反射;于是世上有了這許多璀璨輝煌,虹影般的光彩。 所以世...
    積極的太陽(yáng)閱讀 403評(píng)論 0 0
  • 準(zhǔn)備就緒,明日啟程回廣西。近日百感交集,說(shuō)不清道不明的感覺(jué)。去年三月份出來(lái)闖蕩,一直在外漂泊。對(duì)家里年邁的奶奶甚...
    腹有詩(shī)書(shū)3002閱讀 137評(píng)論 0 0

友情鏈接更多精彩內(nèi)容