動態鏈編與靜態鏈編

2021-08-10 16:59:39 字數 1126 閱讀 9313

1、函式在同一作用域裡

2、函式名相同/引數不同

3、返回值可以不同

1、函式不在同一作用域裡(兩個函式分別在父類和子類裡)

2、函式名相同/引數列表相同/返回值相同(協變除外)

3、基類函式必須是虛函式(有關鍵字virtual)

4、訪問修飾符可以不同

1、函式在不同作用域裡(分別在父類和子類裡)

2、函式名相同

3、在基類和派生類不構成重寫那就是重定義

class a

virtual

void func1(int x)//在b裡被隱藏(在b裡),指定作用域呼叫

};class b:public a

};void test()

int main()

父類裡的virtual void func1()virtual void func1(int x)構成過載

子類裡的virtual void func1()對父類裡的virtual void func1()重寫

子類裡的virtual void func1()時父類裡的virtual void func1(int x)重定義

多型分為靜態多型和動態多型

動態多型=動態鏈編+虛函式的重寫

這裡我們就要說到動態鏈編和靜態鏈編

動態聯編:指標/引用+虛函式

//動態鏈編&靜態鏈編

靜態聯編與動態聯編

在c 中,多型性主要是通過函式過載實現的。過載函式是指程式中對同名函式進行呼叫時,編譯器會根據函式引數的型別和個數,決定該呼叫哪一段函式 來處理這個函式呼叫。這種把函式呼叫與適當的函式 相對應的動作,叫做聯編。聯編分為靜態聯編和動態聯編。在編譯階段決定執行哪個同名的被呼叫函式,稱為靜態聯編。在編譯階...

動態聯編與靜態聯編

首先,聯編是指乙個電腦程式的不同部分彼此關聯的過程。靜態聯編是指聯編工作在編譯階段完成的,這種聯編過程是在程式執行之前完成的,又稱為早期聯編。要實現靜態聯編,在編譯階段就必須確定程式中的操作呼叫 如函式呼叫 與執行該操作 間的關係,確定這種關係稱為束定,在編譯時的束定稱為靜態束定。靜態聯編對函式的選...

動態聯編與靜態聯編

include using namespace std class base 輸出為 f1 of base destructor base f1 of derive destructor base 說明 只要將基類的函式設定為虛函式,那麼所有覆蓋它的子類的函式也都是虛函式,而不需要再使用virtua...