C 中過載 重寫(覆蓋)的區別例項分析

2021-09-22 17:07:15 字數 959 閱讀 9960

這篇文章主要介紹了c++中過載、重寫(覆蓋)的區別,是c++物件導向程式設計非常重要的概念,需要的朋友可以參考下。

1.過載:過載從overload翻譯過來,是指同一可訪問區內被宣告的幾個具有不同引數列(引數的型別,個數,順序不同)的同名函式,根據引數列表確定呼叫哪個函式,過載不關心函式返回型別。

示例**如下:

class a;
前四個互為過載函式,最後乙個和第乙個不是過載函式。

2.重寫:重寫翻譯自override,也翻譯成覆蓋(更好一點),是指派生類中存在重新定義的函式。其函式名,引數列表,返回值型別,所有都必須同基類中被重寫的函式一致。只有函式體不同(花括號內),派生類呼叫時會呼叫派生類的重寫函式,不會呼叫被重寫函式。重寫的基類中被重寫的函式必須有virtual修飾。

例項**如下:

#include

using

namespace

std;

class a

};class b : public a

};int main()

上面為虛函式實現多型的**,不明白的先看虛函式實現多型的原理。

3、總結

過載和重寫的區別:

(1)範圍區別:重寫和被重寫的函式在不同的類中,過載和被過載的函式在同一類中。

(2)引數區別:重寫與被重寫的函式引數列表一定相同,過載和被過載的函式引數列表一定不同。

(3)virtual的區別:重寫的基類必須要有virtual修飾,過載函式和被過載函式可以被virtual修飾,也可以沒有。

C 中過載 重寫(覆蓋)和隱藏的區別例項分析

過載 過載從overload翻譯過來,是指同一可訪問區內被宣告的幾個具有不同引數列 引數的型別,個數,順序不同 的同名函式,根據引數列表確定呼叫哪個函式,過載不關心函式返回型別。示例 如下 classa 前四個互為過載函式,最後乙個和第乙個不是過載函式。2.隱藏 隱藏是指派生類的函式遮蔽了與其同名的...

C 中過載 重寫(覆蓋)和隱藏的區別例項分析

這篇文章主要介紹了c 中過載 重寫 覆蓋 和隱藏的區別,是c 物件導向程式設計非常重要的概念,需要的朋友可以參考下 1.過載 過載從overload翻譯過來,是指同一可訪問區內被宣告的幾個具有不同引數列 引數的型別,個數,順序不同 的同名函式,根據引數列表確定呼叫哪個函式,過載不關心函式返回型別。示...

C 中過載 重寫(覆蓋)和隱藏的區別例項分析

1.過載 過載從overload翻譯過來,是指同一可訪問區內被宣告的幾個具有不同引數列 引數的型別,個數,順序不同 的同名函式,根據引數列表確定呼叫哪個函式,過載不關心函式返回型別。示例 如下 classa 前四個互為過載函式,最後乙個和第乙個不是過載函式。2.隱藏 隱藏是指派生類的函式遮蔽了與其同...