在前面部落格已經詳細講過c++中繼承與多型的概念,在這裡則只使用c語言的語法來實現繼承與多型。
繼承:即派生類中擁有基類的成員變數和成員函式,所以c語言實現如下:
#include typedef void(*func)(void);
void funb()
typedef struct b
b;typedef struct d
d;void test()
執行結果如下:
所以在以上實現中用兩個結構體實現,其中乙個包括另乙個的物件,則就相當於它繼承了另乙個的成員,c語言中結構體無成員函式,則用函式指標來代替。
多型:1.派生類重寫了基類的虛函式;
2.基類的指標或引用指向派生類的物件時,呼叫派生類重寫的虛函式;
實現如下:
//c語言實現多型
#include typedef void(*func)(void);
void funb()
void fund()
typedef struct b
b;typedef struct d
d;void test()
C語言 用C語言實現C 繼承與多型
繼承就是當建立乙個類時,不需要重新編寫新的資料成員和成員函式,只需指定新建的類繼承了乙個已有的類的成員即可。這個已有的類稱為基類,新建的類稱為派生類。舉個例子 人是動物,人具有動物的行為和屬性,但人也有動物所不具備的行為和屬性。動物行為 屬性會動體力人 行為屬性 會動體力 會學習智力 本實現使用了組...
C語言實現繼承和多型
一 面向過程程式設計與物件導向程式設計的區別 眾所周知,c語言是一種典型的面向過程程式語言,而c 確實在它的基礎上改進的一款物件導向程式設計語言,那麼,面向過程與物件導向到底有什麼樣的區別呢?從設計方法角度看 面向過程程式設計方法採用函式 或過程 來描述對資料的操作,但又將函式與其操作的資料分離開來...
C語言實現封裝 繼承 多型
c語言中雖然沒有類,但有struct和指標。我們可以在乙個struct中存入資料和函式指標,以此來模擬類行為。typedef struct parent parent typedef struct child child include include 模擬乙個類a typedef struct a...