以 C 語言實作繼承
高等 C 語言簡介字串指標與陣列函數結構物件導向記憶體檔案錯誤處理巨集處理C 與組合語言資料結構動態字串動態陣列鏈結串列雜湊表開發環境MakeCygwinMinGWDevC++wxDevC++編譯器gcc 編譯器TinyCC 編譯器LCC 編譯器應用主題CGI 程式GNU 程式視窗程式影像處理練習題訊息相關網站參考文獻最新修改簡體版English |
在物件導向當中,子類別繼承父類別時,會同時繼承所有父類別的內容,我們可以在程式中加入 程式範例:以 C 語言實作繼承 (Circle 繼承 Shape)#include <stdio.h> #define ShapeMembers(TYPE) void (*new)(struct TYPE*);float (*area)(struct TYPE*) typedef struct _Shape { // Shape 物件,沒有欄位 ShapeMembers(_Shape); } Shape; float ShapeArea(Shape *obj) { return 0; } void ShapeNew(Shape *obj) { obj->new = ShapeNew; obj->area = ShapeArea; } typedef struct _Circle { ShapeMembers(_Circle); float r; } Circle; float CircleArea(Circle *obj) { return 3.14 * obj->r * obj->r; } void CircleNew(Circle *obj) { obj->new = CircleNew; obj->area = CircleArea; } int main() { Shape s; ShapeNew(&s); printf("s.area()=%G\n", s.area(&s)); Circle c; CircleNew(&c); c.r = 3.0; printf("c.area()=%G\n", c.area(&c)); } 執行結果
|
page revision: 4, last edited: 02 Sep 2010 03:05
Post preview:
Close preview