lw_oopc/README.md
2014-01-08 16:34:13 +08:00

50 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

LW_OOPC升级版本发布说明
=========================
本人在金永华对于高焕堂的lw_oopc的源码的基础上进行了一些简单的修改和调试. 使得lw_oopc能够用在实际的嵌入式项目中, 作为一个很好的框架传播开来.
主要改进有:
1. 修正了一些小错误, 使得编译通过.
2. 调整了一些宏的位置, 使得配置接口只在lw_oopc.h中.
3. 经过测试可以直接在*nix下编译运行, 删掉多余的VS工程文件.
我的联系方式:
* 博客: <http://akagi201.org>
* E-mail: <akagi201@gmail.com>
## 以下为金永华(loveyfore@sohu.com)在他的repo上的一些说明.
* 在高焕堂先生的著作《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程序员们!