#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 函式位址的方法。等有時間詳細的寫出來,今天先寫虛函式的實現原理...