過載 覆蓋 隱藏的區別

2021-09-27 07:22:39 字數 780 閱讀 2256

在c++中有三種概念,過載、覆蓋、隱藏,這三種概念比較相似,但其中仍舊有很大區別!

過載:

我們經常使用函式的過載,最簡單的過載,在我們使用一些排序演算法時,如果資料型別發生改變,比如開始我們是根據int型陣列來寫的排序演算法,但是當我們想對double型別陣列也使用時,我們在沒學習類模板與函式模板前會將剛才寫的int型資料的排序演算法複製一遍,然後將相關引數改為double型。

這樣一來,在呼叫排序演算法時,如果引數時int型,就會呼叫int的排序函式,引數是double型,就會呼叫double的排序函式,這就屬於函式的過載。

所以過載函式的特性:

(1)在同乙個作用域中

(2)函式名字相同

(3)形參列表不同(包括不同型別形參先後順序不同)

(4)virtual關鍵字可有可無

同名同參且基類函式未被virtual所修飾

覆蓋和隱藏的含義令人感覺很模糊,需要多加注意。

過載 覆蓋 隱藏的區別

在csdn上經常看到這種問題 如何區別3者,從論壇中已經能夠找到完善的答案,現在自己也總結一下,加深印象,同時希望對讀者您有用。這不是乙個新的概念,在c 中乙個比較重要的概念 c語言裡面不允許 特徵就是允許函式名相同,通過指定不同的引數或者返回值來區別。這裡我們所說的過載是針對c 中類的,類中過載與...

過載 覆蓋 隱藏的區別

過載 覆蓋 隱藏的區別 成員函式被過載的特徵 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無。覆蓋是指派生類函式覆蓋基類函式,特徵是 1 不同的範圍 分別位於派生類與基類 2 函式名字相同 3 引數相同 4 基類函式必須有virtual 關鍵字。隱藏...

過載 覆蓋 隱藏的區別

高質量c c程式設計指南 已經清晰的列出了過載函式的特性 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual關鍵字可有可無。因為函式引數不同,可以簡單的理解為 兩個過載函式是不同的函式,呼叫者能夠明確 的根據不同的引數來呼叫不同的函式。那麼如果存在這樣兩個函式,編譯器怎...