C語言寫乙個類

2021-10-10 12:33:43 字數 1072 閱讀 7907

#ifndef _50_2_h_

#define _50_2_h_

typedef void demo;

demo* demo_create(int i, int j);

int demo_geti(demo* pthis);

int demo_getj(demo* pthis);

int demo_add(demo* pthis, int value);

void demo_free(demo* pthis);

#endif

#include "50-2.h"

#include "malloc.h"

struct classdemo

;demo* demo_create(int i, int j)

return ret;

}int demo_geti(demo* pthis)

int demo_getj(demo* pthis)

int demo_add(demo* pthis, int value)

void demo_free(demo* pthis)

#include #include "50-2.h"

int main()

classdemo代表乙個類,demo_create相當於建構函式。

執行結果如下:

主函式第12行直接通過d指標修改mi的值,會編譯報錯:

從物件導向的觀點來看,mi是私有的,我們不能從外部訪問。

而在c語言中沒有private關鍵字,我們是通過void*指標來實現的。通過void這樣的技術來實現資訊隱藏。

物件導向不是c++專屬的,我們也可以用c語言寫物件導向。

如何用C 寫乙個類

其實寫乙個類很簡單,但是要寫乙個符合各方面要求的類,卻不是一件容易的事情。下面總結一下需要考慮的一些問題,先把暫時想到的方面記下來,以後想到新的在增加吧。類的生死和初始化 1.copy ctor和copy assignment是不是需要private 單例常用 或者是不是要用private繼承來阻止...

C語言寫乙個雜湊表

目錄 雜湊表,就是下標可以為字母的陣列。假設現有乙個陣列int a 100 想查詢其中第40個元素,則直接輸入a 40 就可以了,時間複雜度為o 1 o 1 o 1 問題在於,當下標不是數字,而是乙個字串的時候,可能需要乙個超大的空間才能將所有下標妥善地存放在特定的位置。例如,若以大小寫字母作為下標...

C函式指標妙用,用c語言寫乙個簡易類

其實在c 中的物件也並不是實現起來也並不是多麼的什麼神秘,只是編譯器幫我們做了許多任務作,所以我們總覺得c 要比c語言難一些,c 編譯器其實對於類中的非virtual 函式的的呼叫規則與對c編譯器對函式的呼叫時一樣的,那就是通過call 函式位址的方法。等有時間詳細的寫出來,今天先寫虛函式的實現原理...