JCOOP入门指南[01]
Posted on Thu, 08 Jul 2010 07:39:44 -1100写一点关于JCOOP的入门指南,JCOOP最核心的部分是由一堆宏构成的,
能够简化C语言描述对象的过程,具体代码见sourceforge.net/projects/jcoop
下面是最简单的一个例子,
涉及到用JCOOP构造类的方法之一以及构造函数与析构函数的使用
因为这个例子非常简单,多的就不写了,直接看注释就好
[那个jc_oop.h要到上面的网址下载,另外最好用GCC来编译,MS那套东西我没测试过,Mingw肯定欧科的]
#include <stdio.h> #include "./include/jc_oop.h" static void cry(){ printf("baby is crying...\n"); } CLASS(Baby) int age; //表示年龄的成员 METHOD(void,cry)(void); //两个void分别对应返回值和参数 END_CLASS CTOR(Baby) //构造函式 printf("Baby constructor called ... \n"); ASSIGN(age,1); //赋值 CONNECT(cry,cry); //链接到指定的函式 END_CTOR DTOR(Baby) //析构函式 printf("Baby destructor called ... \n"); UNASSIGN(age); //置零 DISCONNECT(cry); //断开链接 END_DTOR int main(){ NEW(Baby,baby,NULL); printf("the baby's age is %d\n",baby->age); baby->cry(); DEL(Baby,baby); return 0; }
运行时会打印如下的字符串
Baby constructor called ... the baby's age is 1 baby is crying... Baby destructor called ...
需要注意的是上面的Baby类是构造在堆上的,所以baby自然是一个指针
其在NEW时分配相应的内存,并初始化相应的值(构造函数),
在DEL时调用析构函数释放对应的内存.
从上面的代码不难发现,使用JCOOP不但可以形象的描述一个类,
而且简化了代码的编写,特别是涉及内存分配相关的部分.