c 過載 覆蓋 隱藏的區別和執行方式

2021-09-03 08:42:09 字數 543 閱讀 6537

成員函式被過載的特徵

(1)相同的範圍(在同乙個類中);

(2)函式名字相同;

(3)引數不同;

(4)virtual 關鍵字可有可無。

覆蓋是指派生類函式覆蓋基類函式,特徵是

(1)不同的範圍(分別位於派生類與基類);

(2)函式名字相同;

(3)引數相同;

(4)基類函式必須有virtual 關鍵字。

「隱藏」是指派生類的函式遮蔽了與其同名的基類函式,規則如下

(1)如果派生類的函式與基類的函式同名,但是引數不同。此時,不論有無virtual關鍵字,基類的函式將被隱藏(注意別與過載混淆)。

(2)如果派生類的函式與基類的函式同名,並且引數也相同,但是基類函式沒有virtual 關鍵字。此時,基類的函式被隱藏(注意別與覆蓋混淆)

3種情況怎麼執行:

1。過載:看引數

2。隱藏:用什麼就呼叫什麼

3。覆蓋:呼叫派生類

c 過載 覆蓋 隱藏的區別和執行方式

c 過載 覆蓋 隱藏的區別和執行方式 既然說到了繼承的問題,那麼不妨討論一下經常提到的過載,覆蓋和隱藏 4.1成員函式被過載的特徵 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無。4.2 覆蓋 是指派生類函式覆蓋基類函式,特徵是 1 不同的範圍 分別...

C 過載 覆蓋和隱藏的區別

1 過載 覆蓋和隱藏的概念 覆蓋 覆蓋指的是派生類的虛函式覆蓋了基類的同名且引數相同的函式。過載 必須在乙個域中,函式名稱相同但是函式引數不同,過載的作用就是同乙個函式有不同的行為,因此不是在乙個域中的函式是無法構成過載的,這是過載的重要特徵。隱藏 是派生類的成員函式隱藏了基類函式的成員函式,在呼叫...

C 過載 覆蓋和隱藏的區別

在同一作用域中函式名相同但引數不同 包括引數型別不同,引數個數不同或二者都不同 的函式稱為過載 overload 函式。void print const char ch void print int a void print int a,int b print hello world 呼叫print...