- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本文档是精心选出来的精华文档,对您的生活和学习将有所帮助!
C 语言实现面向对象编程
(合肥工业大学 潘秀才)
我曾经在嵌入式控制系统工作过,苦于嵌入式系统编程一直是C 语言,而没法 C++或其他高级
语言的面向对象方法编程。经过研究生的学习和探索,偶然间发现高焕堂老师写 OOPC (面向对象C
编程),感觉不错。遗憾的是上面没有提供继承的方法。根据本人的研究,在高老师的基础上,提出一
种可行而且结构明了的继承实现方法。至此,C 的OO 编程中的封装、继承、多态都全实现了。现在
本人将其总结如下,希望对大家有帮助。
一、类的封装实现:借用高焕堂的宏头文件,类很容易封装为如下的格式
1、类的定义,其中CLASS() 是lw_oopc_kc.h 中定义的宏
#include lw_oopc_kc.h
CLASS(A)
{
int a;
void(*init)(void*,int);
void(*put)(void*);
};
2 、成员函数的实现
类的封装实质是用借用struct 结构体,用函数指针来表示C++ 中类的方法 (成员函数)。接下来给
类A 的方法写实体函数。
void init_A(void *t,int x)
{
A *cthis = (A*)t;
cthis-a = x;
}
void put_A(void*t)
{
A *cthis = (A*)t;
printf( %d ,cthis-a);
}
3、类(结构体)中的函数指针与实现函数的关联
通过下面的宏把类的方法(函数指针)和实现函数关联:
CTOR(A)
FUNCTION_SETTING (init, init_A);
FUNCTION_SETTING (put, put_A);
END_CTOR
1
PDF 文件使用 pdfFactory Pro 试用版本创建
4 、对象的定义、构造和初始化
如果没有这个连接处理,类 (实际是 struct )中的函数指针就没有函数的功能。函数 init_A()是
XXX_A() 的命名模式,是指明 XXX_A()属于 A 类的函数,方便程序的理解和维护。下面就是 构造
类。在 C++ 中这个工作系统自动调用构造函数实现而在 C 中,这个过程智能显示调用来实现。借助
lw_oopc_kc.h (或lw_oopc.h )可以利用宏CLASS_CTOR(class,obj) 来将定义的对象进行构造,使之
有数据的同时有方法的功能。实例化一个对象3 步子如下:
A aa 1; // 1 、定义对象
CLASS_CTOR(A,aa 1); // 2 、构造对象 使得函数指针和函数关联
aa 1.init(aa1, 10); // 3 、初始化对象的成员变量,注意要: aa1 (取地址)
二、C 继承的实现:
1 、子类的定义:在类的开头借 已经
您可能关注的文档
- 天鹅的故事(第1课时).ppt
- 从开发到销售:如何管理你的典型客户.doc
- 会议营销典型异议处理.doc
- 卖场经营实务简谈.doc
- (威通施工试验方案--1)范本.doc
- 在创业过程中让自己的项目盈利赚钱.doc
- 务工人员配套房脚手架方案.doc
- 自己写的能赚钱的ea.doc
- 淡淡的茉莉花.ppt
- 欧系巴交互灯光雕塑、.doc
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
最近下载
- 宜兴市各级文物保护单位一览表.docx
- 国学《千字文》之《渠荷的历》个人原创课件公开课课件.pptx VIP
- 老旧小区改造工程项目可行性研究报告.docx VIP
- 《GB∕T 45003-2024职业健康安全管理 工作中的心理健康安全:管理社会心理风险 指南》解读和应用指导材料(2024A0-雷泽佳).docx VIP
- 妙事多音乐--张老师 -培训讲解.ppt
- 基础化学高职高专第五版高琳第十章氧化还原平衡.pptx
- 在线网课学习课堂《英语视听说(西京学院 )》单元测试考核答案.docx
- 电子商务平台商家入驻协议书模板.doc
- 北京四中2023学年度上学期初中九年级期中考试物理试卷.docx
- 自然教育研学方案.pptx
文档评论(0)