这是一个模板,是一些宏的集合,针对跨平台的GCC设计[0.11版以后的与VC9编译器兼容]
只用纯粹的C实现简单的OO的机制而不必了解冗杂的C++的语法,
其实现了简单的"类"的模拟,析构与构造,以及对单根继承的模拟.
在很大程度上,可以模拟完成大部分OO中较为重要的特性.
另有简化版ooc-lite( )及相关文档,
提供测试实例及设计思路详解.
08 | static int Animal_load(Animal *THIS,void *name){ |
12 | ASM(Animal,Animal_load,NULL,NULL,NULL) |
15 | STATIC_EX(Cat,Animal); |
17 | static void Meow(Animal *THIS){ |
18 | printf("Meow!My name is %s!\n",THIS->name); |
21 | static int Cat_loadSt(StAnimal *THIS,void *PARAM){ |
22 | THIS->talk=(void *)Meow; |
25 | ASM_EX(Cat,Animal,NULL,NULL,Cat_loadSt,NULL) |
29 | STATIC_EX(Dog,Animal); |
31 | static void Woof(Animal *THIS){ |
32 | printf("Woof!My name is %s!\n",THIS->name); |
34 | static int Dog_loadSt(StAnimal *THIS,void *PARAM){ |
35 | THIS->talk=(void *)Woof; |
38 | ASM_EX(Dog,Animal,NULL,NULL,Dog_loadSt,NULL) |
41 | Animal *animals[4000]; |
46 | if(i%2==0) animals[i]=NEW(Dog,"Jack"); |
47 | else animals[i]=NEW(Cat,"Lily"); |
官方网站:
阅读(1288) | 评论(0) | 转发(1) |