過載:
同一訪問區(如類中)內被宣告的幾個具有
不同引數列(引數的型別,個數,順序不同)的
同名函式,根據引數列表確定呼叫哪個函式,過載不關心函式返回型別。
隱藏:
派生類的函式
遮蔽了它繼承的
基類同名函式,注意只要同名函式,
不管引數列表是否相同,基類函式都會被隱藏。
重寫(覆蓋):
派生類中存在
同基類中函式名,引數列表,返回值型別
都一致的函式,且
基類中該函式必須有
virtual修飾,只有函式體不同(花括號內)。(用於多型,
多型:基類指標指向派生類物件時、會呼叫派生類的函式。基類指標指向基類物件時、會呼叫基類的函式,即動態繫結、只需要乙個指標變數 就可以呼叫所有派生類的虛函式。 )。
注意:使用多型的時候要注意
記憶體洩漏,將
基類的析構函式定義成
虛析構函式。如果基類為非虛析構函式的話,
在delete基類指標(指向派生類)時候只會呼叫基類的析構函式,而不會呼叫派生類的析構函式。這樣派生類中申請的資源就不會得到釋放,就會造成記憶體洩漏。
過載 重寫(覆蓋) 隱藏(重定義)
1 過載要求 函式名相同,引數不同 個數 型別 常函式也可以作為過載判斷。注意返回值不是過載的判斷標準。2 重寫 即覆蓋 要求 要求基類函式為虛函式,且基類函式和派生類函式名 引數等相同。3 隱藏 即重定義 要求 子類重新定義父類中有相同名稱的非虛函式 引數列表可以不同 4 重寫和隱藏都是發生在基類...
過載 重寫 隱藏
共同點 函式名相同 定義 1 如果在類裡函式名相同但是形參不同,則為過載。形參不同包括形參的型別個數以及順序。2 類間。重寫和隱藏都發生在基類和派生類之間。重寫 覆蓋 發生在派生類和基類之間。必須滿足兩個條件 1 基類有virtual宣告 2 函式名和形參必須完全相同。隱藏 發生在派生類和基類之間,...
關於覆蓋 隱藏 過載 重寫的區別
以下列表表示這幾個概念在語言表面上的差別 是否父子類 函式引數是否相同 含有virtual 函式同名 是 是 是 覆蓋 又叫重寫 繼承 override 目的就是實現多型 是 是 否隱藏 是 否 不相關 隱藏 符合正常的理解 同乙個類中 不相同 不相干 過載overload 回答兩個問題 一是訪問誰...