理解C 中過載 重寫和隱藏

2021-08-03 06:38:04 字數 403 閱讀 2111

為了後面說過載,這裡就先說隱藏吧

隱藏:

函式和被隱藏函式在不同類,暫且為父類和子類吧,只要子類出現和父類同名的函式(只需要名字相同),則父類中該函式在子類中被隱藏,也即不可訪問,除非是用於替換被宣告為需要父類引數的地方(即子類此刻被隱式或顯示轉換為父類,可想想黎克特制代換這個東西)。

過載:

過載函式和被過載函式必須在同乙個可訪問區域,這裡的可訪問區域可以結合隱藏部分來理解,過載的方法需在同乙個類中,程式執行時呼叫哪乙個過載函式僅由函式的引數列表唯一確定,與返回值型別沒有關係。

重寫:

這個主要是指虛函式,在父類中定義函式時新增virtual關鍵字,則可以更加靈活呼叫重寫函式和被重寫函式。如果沒有該關鍵字,則應該理解為隱藏吧。

過載 重寫和隱藏

過載 a 相同的範圍 在同乙個類中 b 函式名字相同 c 引數不同 返回型別不足以區分過載函式 d virtual關鍵字可有可無 重寫 實際上就是虛函式動態繫結 a 不同的範圍,分別位於基類和派生類中 b 函式的名字相同 c 引數相同 e 一般情況下返回型別相同 除非返回型別分別為基類指標和派生類指...

過載 重寫 隱藏

共同點 函式名相同 定義 1 如果在類裡函式名相同但是形參不同,則為過載。形參不同包括形參的型別個數以及順序。2 類間。重寫和隱藏都發生在基類和派生類之間。重寫 覆蓋 發生在派生類和基類之間。必須滿足兩個條件 1 基類有virtual宣告 2 函式名和形參必須完全相同。隱藏 發生在派生類和基類之間,...

C 的過載 重寫 隱藏

在同乙個class中 class demo 在同一訪問區內 如在同一.c cpp檔案內 即不在struct或者class中 4個fun都是過載函式 intfun int a void fun double a int fun int a,int b int fun float a 父類 class ...