C 函式的過載,覆蓋及隱藏解析

2021-06-18 01:23:06 字數 857 閱讀 2002

1、過載函式是函式的一種特殊情況,為方便使用,c++允許在同一範圍中宣告幾個功能類似的同名函式,但是這些同名函式的形式引數(指引數的個數、型別或者順序)必須不同,也就是說用同乙個運算子完成不同的運算功能。這就是過載函式。過載函式常用來實現功能類似而所處理的資料型別不同的問題。

兩個過載函式必須在下列乙個或兩個方面有所區別:

1.)、函式有不同引數。

2.)、函式有不同引數型別,

2、過載函式被過載的特徵:

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

2)函式名字相同;

3)引數不同;

4)virtual 關鍵字可有可無。

1、覆蓋(也叫重寫)只對類的建構函式或成員函式適用,是子類繼承父類是才使用的非常有用的功能。真正和多型相關。它們的位址在編譯時無法確定,在執行時動態分配

2、覆蓋函式的特徵是:

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

2)函式名字相同;

3)引數相同;

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

1、是指派生類的函式遮蔽了與其同名的基類函式,規則如下:

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

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

例1:舉例說明函式覆蓋和函式過載的關係

class base

void walk(float x)

例2:舉例說明函式隱藏的關係

class base

void run(float x)

void run(int x)

解析成員函式過載 隱藏 覆蓋

概念 過載 在同乙個作用域下,函式名相同,但函式引數列表不同 引數個數,型別,順序 隱藏 指派生類成員函式遮蔽了與這個函式同名的基類中的函式。1 派生類成員函式與基類成員函式同名,但引數列表不同。2 派生類成員函式與基類成員函式同名,且引數列表相同,但基類中函式並沒有用virtual關鍵字修飾 覆蓋...

C 函式 過載 覆蓋 隱藏

在c 的類中函式定義的時候會有 過載,覆蓋 也成為重寫 隱藏 也成為重定義 三種情況下面說說他們的區別,以及一些注意事項 學習c 中的類,主要有兩種,一種是用struct 關鍵字 定義的,預設情況下類中的成員是public屬性,而另一種使用class 關鍵字 定義的預設是private屬性的。子類在...

c 過載 覆蓋及隱藏規則

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