重寫 過載和重定義

2021-09-11 23:05:40 字數 601 閱讀 3286

函式過載:

(1)必須在乙個類中

(2)子類無法過載父類的函式,父類同名的函式將被名稱覆蓋(不管引數相不相同)

(3)過載是在編譯期間根據引數型別和個數決定函式呼叫

函式重寫:

(1)必須發生於父類和子類之間

(2)父類和子類之間必須有相同的函式原型

(3)使用virtual關鍵字之後可以產生多型(如果不使用virtual關鍵字交重定義)

(4)多型是在執行期間根據具體物件的型別決定函式呼叫

看**:

class parent

virtual void fun(int i)

virtual void fun(int i, int j) };

class child : public parent

virtual void fun(int i, int j, int k) };

int main()

我們的本意是通過子類child呼叫父類函式fun(),但子類無法過載父類的函式,父類同名的函式將被名稱覆蓋(不管引數相不相同),所以,除非我們顯示呼叫c.parent::fun();否則無法訪問fun()函式

過載重寫和重定義

include using namespace std 重寫 過載 重定義 重寫發生在2個類之間 過載必須在乙個類之間 重寫分為2類 1 虛函式重寫 將發生多型 2 非虛函式重寫 重定義 class parent virtual void func virtual void func int i v...

過載重寫和重定義

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

過載重寫重定義

傳智掃地僧課程學習筆記。過載發生了同乙個類中,這個很簡單,不用多說,重寫和重定義,發生了兩個類之間,有virtual關鍵字的,將發生多型,即重寫,沒有的,是重定義,說2個情況,1,若是子類呼叫父類中的函式,並且這個函式名,是名字,在子類中沒有,那麼子類物件可以直接呼叫父類的函式,2,若是這個被呼叫的...