lw_oopc-v1.2

所属分类:其他小程序
开发工具:C/C++
文件大小:239KB
下载次数:57
上传日期:2012-11-21 14:36:34
上 传 者fxd2000
说明:  一种轻量级的面向对象的C语言编程框架:LW_OOPC。LW_OOPC是Light-Weight Object-Oriented Programming in(with) C的缩写,总共一个.h文件,20个宏,约130行代码,非常的轻量级,但却很好的支持了很多面向对象的特性,比如继承、多态,可以优美的实现面向接口编程。这个框架系由台湾的高焕堂先生以及他的MISOO团队首创,之后由金永华继续改进优化,最后,经高焕堂同意以LGPL协议开源(开源网址参见后文)。 用C语言实现OO?我没听错吗?这听起来真是太疯狂了!… 大家都知道,C++支持了面向对象和面向泛型编程,比C要更强大些。那么,为什么要在C语言中实践面向对象呢?为什么不直接使用C++呢? 希望这套宏,能够真正帮助到想用C语言写出面向对象代码的C程序员们! 源码包括几个使用这套宏的代码示例,可以认真钻研下。
(A lightweight, object-oriented C language programming framework: LW_OOPC. LW_OOPC is an acronym for Light-Weight Object-Oriented Programming in (with) C, total. H file, 20 macro, about 130 lines of code, very lightweight, but very good support for object-oriented features, such as inheritance, polymorphism, and interface-oriented programming can be beautiful. This framework is the first team by of Taiwan Mr. Gao Huantang his MISOO continue to improve optimization, followed by Jin Yonghua, see below) agreed to LGPL the agreement open source (open source URL, GAO Huan-tang. Using C language implementation of Estimates of? I did not hear it? It sounds really crazy! ... As we all know, C support object-oriented and oriented generic programming than C to be more powerful. So, why do you want to practice in C language object-oriented? Why not just use C? I hope this set of macros, can really help to write object-oriented code C programmers who want to use the C language! Source includ)

文件列表:
lw_oopc v1.2 (0, 2010-03-02)
lw_oopc v1.2\demo (0, 2010-03-02)
lw_oopc v1.2\demo\Animal (0, 2010-03-02)
lw_oopc v1.2\demo\Animal\animal.c (2281, 2010-02-15)
lw_oopc v1.2\demo\Animal\Animal.dsp (4458, 2010-02-14)
lw_oopc v1.2\demo\Animal\Animal.dsw (535, 2010-02-14)
lw_oopc v1.2\demo\Animal\animal.h (1220, 2010-02-15)
lw_oopc v1.2\demo\Animal\Animal.plg (1326, 2010-03-02)
lw_oopc v1.2\demo\Animal\Animal2005.sln (884, 2010-02-14)
lw_oopc v1.2\demo\Animal\Animal2005.suo (7168, 2010-03-02)
lw_oopc v1.2\demo\Animal\Animal2005.vcproj (4171, 2010-02-14)
lw_oopc v1.2\demo\Animal\Animal2008.sln (885, 2010-02-14)
lw_oopc v1.2\demo\Animal\Animal2008.suo (10240, 2010-03-02)
lw_oopc v1.2\demo\Animal\Animal2008.vcproj (4101, 2010-02-14)
lw_oopc v1.2\demo\Animal\Debug (0, 2010-03-02)
lw_oopc v1.2\demo\Animal\lw_oopc.h (6548, 2010-03-02)
lw_oopc v1.2\demo\Animal\main.c (1735, 2010-02-15)
lw_oopc v1.2\demo\Expr (0, 2010-03-02)
lw_oopc v1.2\demo\ExprAdvance (0, 2010-03-02)
lw_oopc v1.2\demo\ExprAdvance\Debug (0, 2010-03-02)
lw_oopc v1.2\demo\ExprAdvance\expr.c (7706, 2010-03-02)
lw_oopc v1.2\demo\ExprAdvance\expr.h (2670, 2010-02-14)
lw_oopc v1.2\demo\ExprAdvance\ExprAdvance.dsp (4577, 2010-02-14)
lw_oopc v1.2\demo\ExprAdvance\ExprAdvance.dsw (545, 2010-02-14)
lw_oopc v1.2\demo\ExprAdvance\ExprAdvance.plg (1420, 2010-03-02)
lw_oopc v1.2\demo\ExprAdvance\ExprAdvance2005.sln (894, 2010-02-14)
lw_oopc v1.2\demo\ExprAdvance\ExprAdvance2005.suo (9728, 2010-03-02)
lw_oopc v1.2\demo\ExprAdvance\ExprAdvance2005.vcproj (4238, 2010-02-14)
lw_oopc v1.2\demo\ExprAdvance\ExprAdvance2008.sln (895, 2010-02-14)
lw_oopc v1.2\demo\ExprAdvance\ExprAdvance2008.suo (11264, 2010-03-02)
lw_oopc v1.2\demo\ExprAdvance\ExprAdvance2008.vcproj (4168, 2010-02-14)
lw_oopc v1.2\demo\ExprAdvance\lw_oopc.c (5464, 2010-02-14)
lw_oopc v1.2\demo\ExprAdvance\lw_oopc.h (6546, 2010-03-02)
lw_oopc v1.2\demo\ExprAdvance\main.c (575, 2010-02-17)
lw_oopc v1.2\demo\ExprAdvance\memory_detector_result.txt (358, 2010-03-02)
lw_oopc v1.2\demo\Expr\Debug (0, 2010-03-02)
lw_oopc v1.2\demo\Expr\expr.c (5546, 2010-03-01)
lw_oopc v1.2\demo\Expr\Expr.dsp (4498, 2010-03-01)
lw_oopc v1.2\demo\Expr\Expr.dsw (531, 2010-02-14)
lw_oopc v1.2\demo\Expr\expr.h (2311, 2010-03-01)
... ...

LW_OOPC升级版本发布说明 金永华 2010/03/02 // 在高焕堂先生的著作《UML+OOPC嵌入式C语言开发精讲》中介绍了高先生及其MISOO团队创作的lw_oopc宏。 // 在研读这套宏的过程中,我发现高先生提供的这套宏还过于简陋,不能够优雅地支持面向接口编程。 // 经过认真钻研,我对原有的这套宏进行了扩充和改良,得到了lw_oopc宏的升级改进版本。 // 改良后的这套宏,能够很好地支持面向对象编程,能够支持面向接口编程(甚至支持复杂的多重继承)。 // 经邮件与高焕堂先生联系,征得高先生同意,以LGPL协议开源,感谢高先生以及MISOO团队的贡献! // 原有高焕堂先生及其MISOO团队创作的宏(总共6个宏),清单如下: //======================================================================================= //| 高焕堂及MISOO创作的宏 | 是否存在问题? | 是否修改? | //======================================================================================= //| INTERFACE | 没有问题 | 否 | //--------------------------------------------------------------------------------------- //| CLASS | 无法支持继承 | 是 | //--------------------------------------------------------------------------------------- //| CTOR | 对申请不到内存的情况未保护 | 是 | //--------------------------------------------------------------------------------------- //| END_CTOR | 没有问题 | 否 | //--------------------------------------------------------------------------------------- //| FUNCTION_SETTING | 没有问题 | 否 | //--------------------------------------------------------------------------------------- //| IMPLEMENTS | 没有问题 | 否 | //======================================================================================= // 为了更好的支持面向对象以及面向接口编程,我增加了14个宏: //======================================================================================= //| 金永华创作的宏 | 创作目的(为了解决什么问题?) | //======================================================================================= //| DTOR | 为了支持析构函数的概念 | //| END_DTOR | | //--------------------------------------------------------------------------------------- //| ABS_CLASS | 为了支持抽象类的概念 | //--------------------------------------------------------------------------------------- //| ABS_CTOR | 为了支持可继承的抽象类的构造函数 | //| END_ABS_CTOR | | //--------------------------------------------------------------------------------------- //| EXTENDS | 为了让熟悉Java的人容易理解(与IMPLEMENTS宏等同) | //--------------------------------------------------------------------------------------- //| SUPER_CTOR | 为了支持子类调用父类的构造函数 | //--------------------------------------------------------------------------------------- //| SUPER_PTR | 为了支持向上转型 | //| SUPER_PTR_2 | | //| SUPER_PTR_3 | | //--------------------------------------------------------------------------------------- //| SUB_PTR | 为了支持向下转型 | //| SUB_PTR_2 | | //| SUB_PTR_3 | | //--------------------------------------------------------------------------------------- //| INHERIT_FROM | 为了支持访问直接父类的数据成员 | //--------------------------------------------------------------------------------------- 希望这套宏,能够真正帮助到想用C语言写出面向对象代码的C程序员们!

近期下载者

相关文件


收藏者