C語言實現繼承與多型

2021-07-30 18:14:28 字數 623 閱讀 7696

在前面部落格已經詳細講過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...