C 函式覆蓋和隱藏

2021-06-23 03:33:09 字數 378 閱讀 4648

一:覆蓋

1.定義:覆蓋是基類和派生類中的,基類函式是虛函式,派生類中重寫此函式,函式名引數都想同,這就會發生覆蓋

為什麼叫覆蓋?

因為派生類繼承基類的時候實際上是先拷貝了基類的所有非private的成員,當基類的函式是虛函式的時候,如果重寫此函式,函式名和引數完全相同,此時派生類中的函式會將派生的基類中的此函式覆蓋掉(注意;並不是覆蓋了基類的函式,而是派生類繼承的基類的函式),所以叫做覆蓋

正式因為覆蓋才有了c++中的多型

條件:基類函式必須是虛函式

發生在基類與派生類中

函式名稱和引數完全相同

二:隱藏

1.函式名稱相同,引數不同,叫隱藏

2.函式名同,引數同,但是無virtual,也是隱藏

C 函式覆蓋和隱藏

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

隱藏和覆蓋 C

我可以給你說說我的理解 我認為隱藏和覆蓋的區別主要體現在 多型上 舉個例子 隱藏和覆蓋 include include using namespace std class a void f class b public a virtual void g int main 結果是 a a b invo...

C 覆蓋和隱藏

class people virtual void getname different params 隱藏規則2 1 函式名相同 引數相同 2 無virtual void getphone same params 覆蓋規則 1 函式名相同 引數相同 2 有virtual virtual void g...