悟 c實現類似於c 物件導向的功能

2021-09-30 09:30:15 字數 1908 閱讀 5589

(1)struct實現class

struct內部變數等效於class成員變數;

struct內部函式指標等效於class成員函式;

typedef struct point_t

point_t;

void setpoint(struct point_t *pp,int x, int y)

void main()

;

m_p.setpoint(&m_p,10,10);

printf("x=%d,y=%d\n",m_p.x,m_p.y);

}

(2)將struct a作為struct b第乙個元素,可實現「繼承」以及「父子」間的強制轉換

typedef struct point_display_t

point_display_t;

void displaypoint(struct point_display_t *pdis)

//接(1)

void main()

;

struct point_display_t m_dis=

;

m_p.setpoint(&m_p,10,10);

m_dis.displaypoint(&m_dis);//輸出x=0,y=0

struct  point_t  *p_point;

struct  point_display_t *p_point_display;

m_dis.p.setpoint(&(m_dis.p),20,20);

m_dis.displaypoint(&m_dis);//輸出x=20,y=20

p_point=(point_t  *)&m_dis;//子型別轉為父型別

printf("x=%d,y=%d\n",p_point->x,p_point->y);//輸出x=20,y=20

p_point_display = (point_display_t *)p_point;

p_point_display->displaypoint(p_point_display);//輸出x=20,y=20

}

C 實現延遲方法類似於JS的settimeout

我們在變成過程中經常使用非同步或者延遲處理,指令碼中有現成的延遲處理settimeout,但是在c 後端中就沒有這樣現成的方法,但是我們可以使用times可以做乙個類似的方法 如下1000為延遲時間,時間單位為毫秒,而actionfunction則為具體的活動方法,在裡面寫入方法後就可以實現非同步呼...

類似於c語言讀取檔案進行解析

stream fread handle,length 從檔案當前指標位置,往後讀取n個位元組長度 重置檔案指標的位置。指定指標的位置,指標位置修改後。讀取檔案,後面是從這個位置開始讀取了 fseek handle,105 fgets表示每次讀取檔案的一行 error log array while ...

c 分割字串 類似於boost split

由於c 字串沒有split函式,所以字串分割單詞的時候必須自己手寫,也相當於自己實現乙個split函式吧!如果需要根據單一字元分割單詞,直接用getline讀取就好了,很簡單 1 include 2 include 3 include 4 include 5 using namespace std ...