C 概念類 函式的覆蓋和隱藏

2022-09-10 12:00:22 字數 525 閱讀 5781

學習筆記

·函式覆蓋的條件

1.基類函式必須是虛函式(使用virtual關鍵字進行宣告);

2.發生覆蓋的兩個函式要分別位於派生類和基類中;

3.函式名稱與引數列表必須完全相同。

(概括:首先基類函式有virtual關鍵字,兩個分別在基類和派生類中,名稱列表都相同)

·函式隱藏的條件

1.派生類的函式與基類的函式完全相同(函式名和引數列表都相同),只是基類的函式沒有使用virtual關鍵字。此時基類的函式將被隱藏,而不是被覆蓋;

2.派生類的函式與基類的函式同名,但引數列表不同,在這種情況下,不管基類的函式宣告是否有virtual關鍵字,基類函式都將被隱藏。注意這種情況與函式過載的區別,過載發生在同乙個類中。

(概括:兩種情況,第一種,名稱引數列表都完全相同,但是基類函式沒有virtual關鍵字;第二種,函式名稱相同,引數列表不同,且兩個函式分別在基類和派生類中)

C 函式覆蓋和隱藏

原則 成員函式被過載的特徵 相同的範圍 在同乙個類中 函式名字相同 引數不同 覆蓋是指派生類函式覆蓋基類函式,特徵是 不同的範圍 分別位於派生類與基類 函式名字相同 引數相同 基類函式必須有virtual關鍵字。隱藏分兩種情況 一種是,派生類的函式與基類的函式同名,但是引數不同。此時,不論有無vir...

C 函式覆蓋和隱藏

一 覆蓋 1.定義 覆蓋是基類和派生類中的,基類函式是虛函式,派生類中重寫此函式,函式名引數都想同,這就會發生覆蓋 為什麼叫覆蓋?因為派生類繼承基類的時候實際上是先拷貝了基類的所有非private的成員,當基類的函式是虛函式的時候,如果重寫此函式,函式名和引數完全相同,此時派生類中的函式會將派生的基...

C 概念過載 覆蓋 隱藏

函式過載 在c 程式中,可以將語義 功能相似的幾個函式用同乙個名字表示,即函式過載。過載的實現 幾個同名的過載函式仍然是不同的函式,它們是如何區分的呢?我們自然想到函式介面的兩個要素 引數與返回值。如果同名函式的引數不同 包括型別 順序不同 那麼容易區別出它們是不同的函式。過載與覆蓋成員函式被過載的...