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...