OOinC(2):C语言的多态实现方法.docx

上传人:博****1 文档编号:547823806 上传时间:2023-02-25 格式:DOCX 页数:3 大小:12.77KB
返回 下载 相关 举报
OOinC(2):C语言的多态实现方法.docx_第1页
第1页 / 共3页
OOinC(2):C语言的多态实现方法.docx_第2页
第2页 / 共3页
OOinC(2):C语言的多态实现方法.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《OOinC(2):C语言的多态实现方法.docx》由会员分享,可在线阅读,更多相关《OOinC(2):C语言的多态实现方法.docx(3页珍藏版)》请在金锄头文库上搜索。

1、 OOinC(2):C语言的多态实现方法其实我觉得框架化编程的一个核心问题是抽象,用抽象的对象构建程序的主体框架,这是面对对象编程的普遍思想。用抽象构建骨架,再加上多态就形成了一个完整的程序。由于C语言本身实现了继承和多态,使用这样的编程理念(理念啥意思?跟个风,嘿嘿)在C中是非常普遍的现象,可以说Virtual(多态)是VC的灵魂。但是,使用C语言的我们都快把这个多态忘光光了。我常听见前辈说,类?多态?我们用的是C,把这些忘了吧。很不幸的是,我是一个固执的人。这么好的东西,为啥不用呢。很快乐的,在最近的一些纯C代码中,我观察了C中的多态!下面且听我渐渐道来。1.VC中的Interface是什

2、么Interface:中文解释是接口,其实它表示的是一个纯虚类。不过我所要说的是,在VC中的Interface其实就是struct,查找Interface的定义,你可以发觉有这样的宏定义:#Ifndef Interface #define Interface struct #endif而且,实际上在VC中,假如一个类有Virtual的函数,则类里面会有vtable,它实际上是一个虚函数列表。实际上C是从C进展而来的,它不过是在语言级别上支持了许多新功能,在C语言中,我们也可以使用这样的功能,前提是我们不得不自己实现。2.C中如何实现纯虚类(我称它为纯虚构造)比拟前面,信任大家已经豁然开朗了。使

3、用struct组合函数指针就可以实现纯虚类。例子: typedef struct void(*Foo1)();char(*Foo2)();char*(*Foo3)(char* st);MyVirtualInterface;这样假设我们在主体框架中要使用桥模式。(我们的主类是DoMyAct,接口详细实现类是Act1,Act2)下面我将依次介绍这些“类”。(C中的“类”在前面有说明,这里换了一个,是使用早期的数组的方法)主类DoMyAct: 主类中含有MyVirtualInterface* m_pInterface; 主类有下函数:DoMyAct_SetInterface(MyVirtualInt

4、erface* pInterface) m_pInterface= pInterface; DoMyAct_Do() if(m_pInterface=NULL) return;m_pInterface-Foo1();c=m_pInterface-Foo2();子类Act1:实现虚构造,含有MyVirtualInterfacestMAX; 有以下函数:MyVirtualInterface* Act1_CreatInterface() index=FindValid() /对象池或者使用Malloc !应当留在外面申请,实例化if(index=-1) return NULL;Stindex.Foo1=Act1_Foo1; / Act1_Foo1要在下面详细实现Stindex.Foo2=Act1_Foo2;Stindex.Foo3=Act1_Foo3;Return &st index;子类Act2同上。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号