C 私有繼承有什麼用 怎麼用

2021-10-08 06:28:46 字數 848 閱讀 8495

第一次學私有繼承的時候非常迷惑,感覺既然都是不可見,不就是說啥都幹不了嗎?然後這兩天了解到了這方面的知識,總結如下。

最大的用處是通過「繼承」的縱向邏輯建立了一種「has-a」邏輯。更直白點說,就是從基類繼承來的成員,具有對內可用但是對外不可見的特點,這和組合的邏輯很像。所以說,在私有繼承的語境下,可以把基類看成派生類的資料成員物件。

下面回答如何使用。

注:以下**大量簡化,只是為了說明,請不要直接套用。

class father1;

class father2;

class son:private father1, private father2

//使用繼承的邏輯初始化。如果不是繼承,可能是name(p1), year(p2)等,其中name和year是物件,為派生類的資料成員

son:

:son

(p1,p2)

:father1

(p1)

,father2

(p2)

//p1是father1建構函式需要的引數,p2同理

私有繼承通過使用類名和作用域解析運算子來呼叫基類的方法。

如:father1::function1()

如果直接要使用整個基類物件本身怎麼做呢?方法是使用強制轉換。因為是繼承,所以可以這麼做。

如:(const father1&) *this,這個*this指的是派生類。

跟訪問基類物件的方法一樣,即強制轉換,不再贅述。

注:題外話,很多時候即使是共有繼承,仍然需要強制轉換一下,否則容易造成遞迴呼叫。

電視HDMI介面是什麼 有什麼用 怎麼用

hdmi介面是什麼 hdmi介面的誕生 電視hdmi介面怎麼用 電視hdmi介面可以連線膝上型電腦 需要vga轉hdmi轉換器的配合,vga介面一頭插在電腦上,hdmi一頭插在電視上,然後設定電視機的訊號源輸出,選擇 hdmi訊號 利用筆記本的強大處理能力,將1080p的高畫質畫面以及高質量音訊直接...

dev null有什麼用

把 dev null 看作 黑洞 它非常等價於乙個只寫檔案.所有寫入它的內容都會永遠丟失.而嘗試從它那兒讀取內容則什麼也讀不到.然而,dev null 對命令列和指令碼都非常的有用.禁止 標準輸出 cat filename dev null 禁止 標準錯誤 rm badname 2 dev null...

技術有什麼用?

技術有什麼用?收藏 最近在cto俱樂部的乙個討論分享,關於技術和創新的作用 技術向底層延伸,應該是科技,技術向上層延伸,應該是應用,如果單純把技術看作工具,編碼,實現或一種生存的手段,那就太狹隘了。二戰期間,美國和蘇聯都因為戰爭的因素,發展了高精尖技術,二戰結束,美國把可以商業化的科研產品交給了企業...