暫時沒有封裝class 自動維護機制,再私有變數和函式上,還欠缺考慮,再封裝變數的作用域上可能存在變數問題,這涉及語法翻譯器,可能再這個問題上只能通過一些c語言還未使用的關鍵字,同時為了不與c++的關鍵字衝突,可能需要酌情。我在寫這個demo的時候,就有好多人問我實現的意義何在。一是為了學習一些巨集相關的,二是鍛鍊自己再需求上提取的能力,三是封裝不能蒙蔽我的雙眼。所以就產生了如下的demo。
整體思路:
用巨集擴充套件實現class 的定義和型別傳遞。
//#define class_statement (_t)( _t)
#include #include #define class_declare(_t) struct _t;typedef struct _t _t;_t* _t##_##class_new();
#define class_private "c__private__"
#define class_public "c__public__"
#define class_method "c__method__"
#define class_member "c__member__"
#define class_body_begin(_t) struct _t;
#define class_init(_t)((_t*)malloc(sizeof(_t)))
#define class_t_inherit(_t,_ft)
#include class_declare(student)
class_body_begin(student)
char* name;
int age;
class_body_end
student* student_class_new() //建構函式 類名_class_new() 指標型別的class
//需要註冊到系統維護列表中
int main(int argc, char *ar**)
執行效果如下
C 語言之類class
在現實世界中,經常有屬於同一類的物件。例如,你的自行車只是世界上很多自行車中的一輛。在物件導向軟體中,也有很多共享相同特徵的不同的物件 矩形 雇用記錄 剪輯等。可以利用這些物件的相同特徵為它們建立乙個集合。而這個集合就稱為類。類是定義同一類所有物件的變數和方法的藍圖或原型。例如,可以建立乙個定義包含...
C 語言入門 Demo 例程
本次通過乙個小例程來回顧和整理 c 語言入門 系列的知識點,相信你掌握了這個小例程後,你將進入 c 語言的大門,迎接 c 語言程式設計的大千風情。下面獻上例程,本例程已經上傳至 github。開發環境 visual studio 2017 example 鍵入5個學生的名稱 語文成績 數學成績和英語...
用C 封裝雙向迴圈鍊錶(class)
include using namespace std typedef int datatype struct node 結點 class list list const list l 拷貝 phead new node list operator list l 賦值運算子過載 list 析構 de...