C语言 实现 面向对象编程 OOC

最近百度面试过程中有同学被问到这样一个问题:如何用C语言实现面向对象?我们都知道面向对象的三大基本特征:封装、继承和多态,C++语言和编译器都对这些特征有着强有力的支持,但是对于C这样的函数式语言,如何实现面向对象?引用一句话:面向对象从来都是思想,而不是语言! 理解面向对象的编程思想,我们使用C语言这样的较低级的语言也同样可以实现OOP,里面具体用到的有C语言中的宏,结构体,函数指针, 聚合组合等知识。


强烈推荐参阅以下链接


http://blog.codingnow.com/2010/03/object_oriented_programming_in_c.html

http://c.group.iteye.com/group/wiki/1291-object-oriented-programming-language-c

http://blog.chinaunix.net/uid-26750235-id-3102371.html

http://blog.chinaunix.net/uid-9104650-id-2009591.html

http://liujian.is-programmer.com/posts/268.html

http://blog.csdn.net/yuyin86/article/details/7107671#




推荐两本书:

《   Inside the C++ Object Model  》

《 Object-oriented Programming with ANSI-C 》


这里是csdn上前几章的中文翻译

http://blog.csdn.net/besidemyself/article/details/6376405


wiki上有全部的中英文互译

http://wiki.chinaunix.net/OOC:%e5%86%85%e5%ae%b9


不过建议对照英文原著阅读

http://www.planetpdf.com/codecuts/pdfs/ooc.pdf


这里有Object-oriented   Programming   with   ANSI-C的一些例子

http://www.bolthole.com/OO-C-programming.html

http://barracudaserver.com/WP/DeviceControl/OOIntro.html

http://www.eventhelix.com/realtimemantra/basics/object_oriented_programming_in_c.htm



这里是一些OOP设计思想和原则的文章

http://www.eventhelix.com/realtimemantra/Object_Oriented/


下面这篇给出了C++和对应的C代码,用C来实现C++中的继承和虚函数特性,推荐@ ^ @

http://www.eventhelix.com/realtimemantra/basics/ComparingCPPAndCPerformance2.htm


下面是一个轻量级的面向对象C编程框架LW——OOPC(Light Weight Object-oriented Programming with C)

http://sourceforge.net/projects/lwoopc/


下面是优酷上面的一个视频教程(我还没看)

http://v.youku.com/v_show/id_XMTM4MzkyMTI4.html


不小心搜到了一个《 C语言也能干大事 》

http://www.rupeng.com/forum/forum-52-1.html

 

有兴趣的话也可以学习一下 Objective-C,它是加入面向对象思想的C语言母集

http://zh.wikipedia.org/wiki/Objective-C

http://www.apple.com.cn/developer/mac/library/documentation/Cocoa/Conceptual/OOP_ObjC/Introduction/chapter_1_section_1.html#//apple_ref/doc/uid/TP40005149-CH1-SW2

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值