因为个人爱好,平时在家学习单片机开发,没事写写程序,不知道怎么地,突然就想用C模仿C++写程序,于是乎,弄了几个宏定义。。。
首先,为了在样子上长得像,需要这样一个宏定义,如下:
光这样是不行的,因为C++中有默认的构造函数,析构函数,所以还需要如下这个东西,如下:
这样就有了一个this指针,构造函数fnCtor,析构函数fnDtor,这个结构体里面的uiClassSize,后面会用的到,用来保存创建的类占用存储控件大小的。
由于每一个类都需要如上的构造函数,析构函数,所以还需要一个宏来实现定义一个类,如下:
上面几个宏就能大概实现了。把这几个宏放到一个头文件中,以后新建一个类的时候,新建一个头文件并引用这个头文件。下边,用这种方式定义一个类(这里没有显示上面宏定义的头文件,其实包含了)。如下:
每新建一个类都要有上图中,class_default;这个是第二张图片中结构体指针变量,这是为了每一个类都有构造函数,析构函数,其他元素就可以自定义了,也就是类的成员变量,比如flag,data,当然也可以用函数指针来声明类的成员函数。
仅仅这样还是不够滴。还需要一个宏,如下:
这个宏用在类对应的c文件中使用,如下:
前两个函数是构造函数,和析构函数。功能就自己定义了。最下面的const CLASS(CTest) 后面是名字,可以自己取,里面的内容中第一条等号后面的 一定要是 &__XXX_class ,XXX就是前面头文件中类的名字,一定要这样写。其实就是把 class_define(X) 这个宏中定义的__X_class的地址赋值给了pClass_default。到这里就搞定了。
为了能够生成一个对象,还需要这样一个函数,用来生成一个类的对象,函数如下:
以后用这个函数创建一个类就可以了。到这里就差不多了。
使用类的时候是这样的,如下:
以后有时间在贴出具体的用这种方法写单片机程序的例子。