大話OOC(二)不得不說的函數指針

    要想讓native C模擬OO編程,對指針的靈活使用還是比較重要,不過指針也是萬惡之源,使用時必須謹慎否則會出現意想不到的結果(跑題了)。。。。上一篇的代碼可能有點簡單了,下面的代碼運用了函數指針模擬了oo編程

#include <stdio.h>
struct A {
 int a;
 void (*showA)(struct A *);
};
static void A_showA(struct A *THIS){
 printf("the value of obj's a is %d\n",THIS->a);
}
void iniA(struct A *THIS){
 THIS->a=100;
 THIS->showA=A_showA;
}
int main(){
 struct A obj;
 iniA(&obj);
 obj.showA(&obj);
 return 0;
}

native C中沒有C++/Java/C#的所謂的“方法”,因爲本質上都是一個自定義函數,類與結構體也是如此,struct和class也只是編譯細節上有所不同,這個我以後會專門出一期教程的,另外要強調的是,C語言的結構體是可以包含函數指針的,這一編譯特性也使用native C寫OO程序變得可行簡單

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章