C 中過載 覆蓋 隱藏的區別

2021-07-27 07:57:17 字數 724 閱讀 1483

過載:

過載特性:

(1)相同的範圍

(2)函式名字相同

(3)引數不同

(4)virtual關鍵字可有可無

class a

public:

void func(int a, int b);

void func(int a);

這就是對函式進行了過載。

注:對於全域性函式也是可以過載的,第乙個條件中只要範圍相同就可以。

覆蓋

覆蓋的特性:

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

(2)函式名字相同

(3)引數相同

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

class a

public:

virtual int add(int x, int y);

class b : public a

public:

virtual int add(int x, int y);

這裡就是b類中的add函式覆蓋了a類中的add函式

隱藏

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

(2)如果派生類的函式與基類的函式同名,但是引數不同,此時,無論有無virtual關鍵字,基類的函式將被隱藏

C 中函式覆蓋 隱藏 過載區別

c 在繼承這一節涉及到函式覆蓋 隱藏 過載等,如何區別它們呢?首先函式 覆蓋的條件 1 基類函式必須是虛函式 2 發生覆蓋的兩個函式要分別位於派生類和基類中 3 函式名稱和引數列表完全相同 其次函式隱藏 主要有以下兩種情況 1 派生類的函式和基類函式完全相同 函式名和引數列表相同 只是基類的函式沒有...

C 過載 覆蓋 隱藏的區別

1 相同的範圍 在同乙個類中 2 函式名相同 3 引數不同 4 virtual關鍵字可有可無 5 與返回值型別無關 1 不同的範圍 基類和派生類中 2 函式名相同 3 引數相同 4 基類函式必須有virtual關鍵字 5 返回值型別必須相同 1 如果派生類的函式與基類的函式同名,但是引數不同。此時,...

C 中,過載 覆蓋和隱藏的區別?

函式的過載是指在c 的某乙個類中允許有多個同名的成員函式存在,但是同名的各個函式的形參必須有區別 a.形參的個數不同 b.形參的個數相同,但是形參的型別不同。覆蓋 override 是指在派生類中存在重新定義的函式,其函式名 引數列 返回值型別必須同基類 父類 中的相對應被覆蓋的函式嚴格一致,覆蓋函...