C 重要的幾個概念

2021-07-11 00:50:07 字數 985 閱讀 6597

1、

虛繼承

在預設情況下,派生類物件中應該包含子類那部分。如果某個類在派生過程中出現了多次,則應該有包含該類的多個子物件。但是這樣顯然對iostream是行不通的,乙個iostream物件肯定只希望在同乙個緩衝區中進行讀寫操作,也會要求條件狀態能同時反映輸入輸出操作的情況。假如iostream包含了兩份base_ios的話,顯然就沒法實現了。

所以虛繼承就是為了解決這種情況,領某個類作出宣告,承諾願意共享它的基類,共享的基類子物件成為虛基類。在這種情況下,無論虛基類在繼承體系中出現多少次,在派生類中都共享乙個虛基類的乙份拷貝。

2、抽象基類

純虛函式:末尾加=0,說明當前這個函式是沒有實際意義的,無需定義它的實現。但也可以提供定義,但不能在類內為乙個=0的函式提供函式體,必須定義在外部。

含有純虛函式(或者未經覆蓋直接繼承)的類是抽象基類,抽象基類負責定義介面,而後續的其他類可以覆蓋該介面。我們不能建立抽象基類的物件。

3、繼承的建構函式

繼承建構函式的引入原因:如果基類的建構函式很多,那麼子類的建構函式想要實現同樣多的構造介面,必須一一呼叫基類的建構函式,有點麻煩。

對於基類的每乙個建構函式,編譯器都在派生類中生成乙個形參列表完全相同的建構函式,而派生類自己的資料成員則採用預設初始化

4、模板特例化和偏特化

特化:模板為什麼要特化,因為編譯器認為,對於特定的型別,如果我能對某一功能更好的實現,那麼就該聽我的。

模板分為類模板與函式模板,特化分為全特化與偏特化。全特化就是限定死模板實現的具體型別,偏特化就是如果這個模板有多個型別,那麼只限定其中的一部分。

5、型別轉換運算子

型別轉換運算子是類的一種特殊成員,他負責將乙個類型別的值轉換為其他型別。

一般的形式是:operator type() const; 宣告為const的因為不應該改變待轉換物件的內容。

C 重要幾個概念

1 c 中虛函式的作用是什麼 2.c 運算子過載怎麼理解?說起來比較麻煩,還是自己看起來領悟的快。給你個簡單的運算子過載的例子。過載了兩個 點的加減運算。他使本來只可以在數值上用 運算的可以被座標點運用。點x 1,1 y 2,2 z 3,3 例子如下,成功除錯。include using names...

幾個重要的概念

1 服務 服務是乙個個的介面,介面約定了服務,從而使隨意替換服務的實現對使用介面服務的 沒有任何的影響。像我們上面例子中的ilog,ilogformatter都是乙個個服務,我們在這個例子中支實現了乙個文字檔案的日誌記錄,如果你要是實現資料庫記錄的日誌記錄,都必須要遵守ilog這個介面。2 元件 簡...

HTTP的幾個重要概念

乙個傳輸層的實際環流,它是建立在兩個相互通訊的應用程式之間。在http1.1,request和reponse頭中都有可能出現乙個connection的頭,此header的含義是當client和server通訊時對於長鏈結如何進行處理。在http1.1中,client和server都是預設對方支援長鏈...