C語言實現單繼承 inheritance

2021-09-10 15:42:17 字數 3581 閱讀 8942

* namedpoint.h

#ifndef namedpoint_h

#define namedpoint_h

struct namedpoint;

typedef struct namedpoint namedpoint;

namedpoint *makenamedpoint(double x, double y, char *name);

void setname(namedpoint *np, char *name);

char *getname(namedpoint *np);

#endif /* namedpoint_h */

* namedpoint.c

#include "namedpoint.h"

#include struct namedpoint ;

namedpoint *makenamedpoint(double x, double y, char *name)

void setname(namedpoint *np, char *name)

char *getname(namedpoint *np)

* point.h

#ifndef point_h

#define point_h

struct mypoint;

typedef struct mypoint mypoint;

mypoint *makepoint(double x, double y);

double distance(mypoint *p1, mypoint *p2);

#endif /* point_h */

* point.c

#include "point.h"

#include #include struct mypoint ;

mypoint *makepoint(double x, double y)

double distance(mypoint *p1, mypoint *p2)

* main.c

#include "point.h"

#include "namedpoint.h"

#include int main(int argc, const char * ar**)

* test:

origin upperright distance=1.414214

program ended with exit code: 0

main函式,這裡的namedpoint資料結構是被當作mypoint資料結構的乙個衍生體來使用的。

因為namedpoint結構體的前2個成員的順序與mypoint結構體完全一致,這樣實現單繼承。

必須強制將namedpoint的引數型別轉換為mypoint, 而在真正的物件導向程式設計語言中,這種向上轉換

通常應該是隱性的。

--------------------------  巢狀父類 -------------------------------------

c語言實現單鏈表

一 使用簡介 使用c語言實現了單鏈表的基本操作,共有四個檔案,兩個標頭檔案是常用的,後兩個分別是主函式,和對鍊錶的基本操作函式,倒入時候,須將四個檔案放在同乙個目錄下。二 心得 在書寫過程中,主要錯誤集中在指標的使用上,通過此次程式設計,對於指標的認識更加深刻,頭結點的存在,更大意義上是為了簡化指標...

C語言實現單鏈表

單鏈表可以說是基礎,有利於對指標的使用 結點 typedef int datatype typedef struct slistnode slistnode 實現的函式的宣告如下 slistnode buynode datatype x void printslist slistnode phead...

C語言實現單鏈表

dev c 編譯執行通過,實現了單鏈表的構建,清空,插入,刪除和查詢。include include include include include define ok 1 define error 0 typedef int elemtype typedef struct node node ty...