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不但可以形象的描述一个类,
而且简化了代码的编写,特别是涉及内存分配相关的部分.
