物件導向中的過載 覆蓋和隱藏

2021-08-07 23:11:14 字數 382 閱讀 4766

部落格**:物件導向中的過載、覆蓋和隱藏

方法在同乙個類中

過載的方法名稱相同

引數不同

(引數的型別不同,引數的個數不同)

virtual關鍵字可有可無

派生類函式覆蓋基類函式

不同的範圍(分別位於派生類和基類中)

函式名稱相同

引數相同

基類函式必須有virtual關鍵字

如果派生類的函式與基類的函式同名,但是引數不同。此時,不論有無virtual關鍵字,基類的函式都將被覆蓋。

如果派生類的函式與基類的函式同名,並且引數也相同,但是基類函式沒有virtual關鍵字。此時,基類的函式也將被隱蔽。還記得嗎如果此時基類函式如果有virtual,子類函式就覆蓋了父類函式。 

物件導向C 中過載 重寫(覆蓋) 隱藏的區別

1.過載與重寫和隱藏的區別 函式過載的條件發生的必要條件是兩個函式在同乙個類中,具有相同的函式名與不同的引數型別或引數個數,不存在繼承關係。2.重寫與隱藏的區別 函式的重寫與隱藏發生在類的繼承過程中,如果是重寫,父類中被重寫的函式必須宣告為virtual,並且派生類中重寫函式的引數列表與父類中被重寫...

過載 覆蓋和隱藏

部分文字內容摘自 高質量c c程式設計 1 過載 overload 1 相同的範圍,在同乙個類中。2 函式名相同,引數不同。3 virtual可有可無。這在平時設計中用的比較多,比如遊戲中角色說話,可以設計成 void senddialog const char content 預設 void se...

C 中覆蓋,過載和隱藏

include using namespace std struct foo void func int x 那麼,如果不用 using 宣告,拆分後 中的函式 func 不是過載應該是什麼呢?是隱藏 hide 下面是關於過載 覆蓋和隱藏的區別 這幾個概念都有乙個共同點 函式名稱相同,所以不免讓人混...