使用C實現多型

2021-10-02 01:23:10 字數 573 閱讀 4476

什麼是多型?簡單地說就是主函式訪問繼承類derive的成員函式時,如果derive類存在此函式,就直接呼叫它;而如果derive類沒有,但是base類有此函式,則間接呼叫父類的那個函式。

簡單的說,就是一句話:允許將子類型別的指標賦值給父類型別的指標

c也可以實現多型。不過這種多型和c++中的多型有所不同,此處不允許同名的成員函式。但是,我們仍然可以實現一種模擬的多型。

#include"base.h"//由於用到了多型,這裡子類的所有基類的標頭檔案都要顯式地新增。如果只需要繼承的話是不用這樣的。

#include"derive.h"

//動態繼承描述表巨集,帶乙個變數用於(內聯地)傳遞物件。

C 不使用virtual實現多型

不使用virtual實現多型可以用成員函式指標完成。成員函式指標形式 返回型別 a 指標名 形參表 其中a是類型別,即這個指標是指向a類的成員函式的函式指標 例如 int a p int,int 這是乙個指向 a類的帶有兩個int型形參且返回值是int的成員函式 的指標,指標名是p。下面是 incl...

C 實現多型

多型 就是指不同物件收到相同訊息是,會產生不同行為,同乙個類在不同的場合下表現出不同的行為特徵 多型的作用 把不同的子類物件都當做父類來看,可以遮蔽不同子類物件之間的差異,寫出通用的 做出通用的程式設計,以適應需求的不斷變化。實現多型有三種形式 虛方法抽象類介面 下面,使用虛方法,簡單實現多型效果 ...

C 多型實現

多型 多型的含義為 乙個事物的多種形態,在c 程式設計張,多型性是指具有不同功能的函式可以用同乙個函式名,這樣就可以用乙個函式名呼叫不同內容的函式。一般多型分為兩種 1 靜態多型 也成為編譯多型,主要包括引數多型,過載多型和強制多型。引數多型 採用引數化模板,通過給出不同的型別引數,使的乙個結構有多...