C 中過載 重寫 重定義區別

2021-08-07 12:12:05 字數 415 閱讀 1504

重寫、過載、重定義區別

1、成員函式過載特徵:

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

b 函式名字相同

c 引數不同

dvirtual關鍵字可有可無

2、重寫(覆蓋)是指派生類函式覆蓋基類函式,特徵是:

a 不同的範圍,分別位於基類和派生類中

b 函式的名字相同

c 引數相同

d 基類函式必須有virtual關鍵字

3、重定義(隱藏)是指派生類的函式遮蔽了與其同名的基類函式,規則如下:

a 如果派生類的函式和基類的函式同名,但是引數不同,此時,不管有無virtual,基類的函式被隱藏。

b 如果派生類的函式與基類的函式同名,並且引數也相同,但是基類函式沒有virtual關鍵字,此時基類的函式被隱藏。

過載 重寫 重定義區別

過載 函式名相同,函式的引數個數 引數型別或引數順序三者中必須至少有一種不同。函式返回值的型別可以相同,也可以不相同。發生在乙個類內部。重定義 也叫做隱藏,子類重新定義父類中有相同名稱的非虛函式 引數列表可以不同 指派生類的函式遮蔽了與其同名的基類函式。可以理解成發生在繼承中的過載。重寫 也叫做覆蓋...

C 中過載 重寫 重定義

過載 1 作用域相同。2 函式名相同,引數列表不同。3 與返回值無關。例 同乙個類的建構函式和拷貝建構函式構成過載。class a a const a a 重寫 覆蓋 1 不在同一作用域 分別為基類和派生類 2 函式名相同,引數列表相同,返回值相同。3 基類成員函式必須有virtual關鍵字修飾。4...

C 過載重寫重定義

includeusing namespace std 函式過載 必須在同乙個類中進行 子類無法過載父類的函式,父類同名函式將被名稱覆蓋 過載是在編譯期間根據引數型別和個數決定函式呼叫 函式重寫 必須發生於父類和子類之間 並且父類和子類中的函式必須有完全相同的原型 使用virtual宣告之後能夠產生多...