《Object-Oriented Programming With ANSI-C》 C++对象模型的经典之作

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



每次读到这本书,总会对其作者产生崇高的敬意。


在面向对象还是新奇事物的那个年代,本书的作者已经以其深厚的C语言功力和对面向对象思想的完美理解,替后来的程序员们指点了迷津。


记得若干年前第一次拜读此书,有种醍醐灌顶的顿悟之感,原来那些复杂的面向对象之“奇技淫巧”,不过尔尔。诸如继承,延迟绑定,多态等等都是浮云。

再更透彻地理解了C++对象模型之后,对诸如COM, BREW, Object-C,LInux device driver以及C++的实现,才能有更深刻的了解。


尽管此本书面世已经有将近20年的历史,但是它所体现的面向对象的思想及其对象模型的实现机理,对理解当今的一些软件架构及其实现仍然有非常深刻的意义。


希望对C和C++有兴趣的朋友,都有机会拜读一番。


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


ANSI-C实现面向对象 英文原著翻译 这本书讲了很多C++,JAVA中未曾提到的面向对象的思想,实乃牛人的上乘作品。 立即下载

相关推荐

Object oriented Programming with ANSI-C

一本介绍OOPC (Object oriented programming in C language)的书籍。<br>对只能用C语言进行开发的人员来说很有价值。

《Object-Oriented Programming With ANSI-C》之第一章(抽象数据类型—信息隐藏)

第一章   抽象数据类型—信息隐藏 1.1 数据类型        数据类型是每种编程语言不可或缺的一部分。ANSI-C(标准化C)拥有一些基本数据类型:int ,double和char。有限的数据类型几乎不能满足程序员的要求,所以编程语言会提供一种机制来使得程序员使用这些基本的预定义数据类型构造新的数据类型。一个简单的应用就是构造集合,如数组,结构体和联合体。而指针集,依照C.A.R

鹏哥说编程 7185

Object-oriented Programming with ANSI-C

标准C实现面向对象 Object-oriented Programming with ANSI-C 附带源码

《Object-Oriented Programming With ANSI-C》之第三章(编程的悟性——算术表达式)

第三章 编程的悟性——算术表达式       动态连接就其本身而言是一项强大的编程技术,并不是去写一些带有庞大的switch 语句去处理很多特例的函数。我们可以写很多小的函数,对于每个case 语句,安排适当的函数被动态连接调用。这样做通常简化了编程工作并且会使得代码容易扩展。        作为一个例子,我们将写一个小的程序去读并评估由浮点数字,括号,常用操作符,减号,等组成的算术

鹏哥说编程 3097

《Object-Oriented Programming with Object C》 英文高清原版 PDF

《Object-Oriented Programming with Object C》 英文高清原版 PDF

Object- Oriented Programming with Ansi-C

没有任何一种编程技术能解决所有问题; 没有任何一种编程语言只输出正确的结果; 没有任何一个程序员需要从零开始一个项目。 -----这三句似曾相识? 这是一本17年前的书,写的是用纯C来实现OOP。。。 亘古的C,永远的C。。。 关天C,我没有其它要说的了。 关于这个资源,还有一句:原书+源码,全在这儿 我希望10年后我还在读它,看它。。。 No programming technique solves all problems. No programming language produces only correct results. No programmer should start each project from scratch. Object-oriented programming is the current cure-all — although it has been around for much more then ten years. At the core, there is little more to it then finally applying the good programming principles which we have been taught for more then twenty years. C++ (Eiffel, Oberon-2, Smalltalk ... take your pick) is the New Language because it is object-oriented — although you need not use it that way if you do not want to (or know how to), and it turns out that you can do just as well with plain ANSI-C. Only object-orientation permits code reuse between projects — although the idea of subroutines is as old as computers and good programmers always carried their toolkits and libraries with them. This book is not going to praise object-oriented programming or condemn the Old Way. We are simply going to use ANSI-C to discover how object-oriented programming is done, what its techniques are, why they help us solve bigger problems, and how we harness generality and program to catch mistakes earlier. Along the way we encounter all the jargon — classes, inheritance, instances, linkage, methods, objects, polymorphisms, and more — but we take it out of the realm of magic and see how it translates into the things we have known and done all along. I had fun discovering that ANSI-C is a full-scale object-oriented language. To share this fun you need to be reasonably fluent in ANSI-C to begin with — feeling comfortable with structures, pointers, prototypes, and function pointers is a must. Working through the book you will encounter all the newspeak — according to Orwell and Webster a language ‘‘designed to diminish the range of thought’’ — and I will try to

OOPC:Object-Oriented Programming in C

转载自:http://www.cnblogs.com/stli/archive/2010/10/16/1853190.html  OOPC是指OOP(Object-Oriented Programming)与C语言的结合,它是一个面向对象C语言编程框架。它是一套C语言的宏,定义了OOP概念的关键字,借助于这一套宏,实现面向对象的特性,如类、对象、继承、接口、多态、消息等。   C++对

雪夜&流星的专栏 2303

Object-oriented programming with C.英文版

Object-oriented programming with C.英文版. 时间很久了,但内容不错.

ANSI C and object-oriented programming

ANSI C and object-oriented programming Do you think that to program in an object-oriented style you need an object-oriented language? Well, you're wrong. It seems to be a common myth that you need a...

weixin_33841503的博客 172

用C-语言实现面向对象编程.pdf

用 C 语言实现面向对象编程,我曾经在嵌入式控制系统工作过,苦于嵌入式系统编程一直是 C 语言,而没法用 C++或其他高级 语言的面向对象方法编程。经过研究生的学习和探索,偶然间发现高焕堂老师写 OOPC(面向对象 C 编程),感觉不错。遗憾的是上面没有提供继承的方法。根据本人的研究,在高老师的基础上,提出一 种可行而且结构明了的继承实现方法。至此,C 的 OO 编程中的封装、继承、多态都全实现了。现在 本人将其总结如下,希望对大家有帮助。

RPA实战-UiPath自动化处理Outlook邮件附件全流程解析

本文详细解析了如何使用UiPath实现Outlook邮件附件的自动化处理全流程,涵盖环境配置、核心流程实现、高级功能扩展及性能优化技巧。通过RPA技术,企业可大幅提升邮件附件处理效率,减少人工操作错误,适用于财务、物流等多个场景。

weixin_33701251的博客 426

[转]OOPC:Object-Oriented Programming in C

转载自:http://www.cnblogs.com/stli/archive/2010/10/16/1853190.html  OOPC是指OOP(Object-Oriented Programming)与C语言的结合,它是一个面向对象C语言编程框架。它是一套C语言的宏,定义了OOP概念的关键字,借助于这一套宏,实现面向对象的特性,如类、对象、继承、接口、多态、消息等。   C++对于大型软...

weixin_34258782的博客 162

告别BAPI!深入SAP S/4HANA BP框架:cl_md_bp_maintain维护客户主数据的正确姿势与性能优化

本文深入解析SAP S/4HANA中cl_md_bp_maintain框架的高效实践与架构设计,对比传统BAPI方式,展示其在业务伙伴(BP)主数据维护中的性能优势与现代化特性。通过详细代码示例和性能测试数据,揭示如何利用该框架实现批量处理、集中校验及智能错误恢复,助力企业从ECC向S/4HANA平滑迁移。

weixin_30596735的博客 357

object-oriented programming

In this chapter, we • Introduce you to object-oriented programming; • Show you how you can create objects that belong to classes in the standard Java library; and • Show you how to write your own c

wocalenimade的博客 914

解密Android相机框架:从HAL到应用层的全链路解析

本文深入解析Android相机框架的全链路架构,从应用层到硬件抽象层(HAL)再到驱动层,详细介绍了CamX-CHI架构的设计哲学与实战应用。通过HAL3接口、V4L2交互机制及Camera2 API的最佳实践,帮助开发者优化相机性能,解决多摄切换、预览卡顿等常见问题,提升成像效率与稳定性。

weixin_29238147的博客 408

通达信指标加密DLL加密解密三个公式源码准确率90%以上超级指标精准买卖绝世指标

通达信指标加密DLL加密解密三个公式源码准确率90%以上超级指标精准买卖绝世指标 1 超级指标 指标公式:买卖提示非常明显(适合通达信) 指标源码如下: M:3 100 60 N 3 100 30 散户线: 100*(HHV(HIGH,M)-CLOSE)/(HHV(HIGH,M)-LLV(LOW,M));RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:=SMA(RSV,5,1); D:=SMA(K,3,1); J:=3*K-2*D;主力

m0_60244077的博客 3万+

About OOP: object-oriented programming

About OOP: object-oriented programming.It’s been more thanthree decades since OOP came into this world. And the software industry haschanged a lot, too. Nowadays, software is common mercha

稀有猿诉 1956

Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device

Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device, Quartus的安装过程不同于ISE/vivado的安装。“Current license file does not support”这种情况多出现在高版本的quartus中综合很久以前的代码,使用很早型号的FPGA或是CPLD。对于这种情况,就得在官网或是其他网站上下载包含所需Device的库文件。

夜半少年的博客 1万+

c语言定义函数结构体,C中struct的函数实现

C中struct的函数实现,只能用函数指针成员C/C codeCode highlighting produced by Actipro CodeHighlighter(freeware)#include struct test{voidfun(){printf("hello,world\n");}};int main(){structtest _t;_t.fun();return0;}上面的代码...

weixin_42537919的博客 824

【Ubuntu】RK3576 Linux 6.10 Ubuntu 22.04 系统中 HUSB311 Type-C 转 DP 显示输出与 Device/OTG 模式切换配置详解

本文详细介绍了在Rockchip RK3576开发板(Linux Kernel 6.10+Ubuntu 22.04)上配置HUSB311 Type-C控制器的设备树实现方案。主要内容包括:1)硬件连接与模块组成;2)设备树完整配置,涵盖Type-C供电、USB OTG/Host模式、DP显示输出等关键功能;3)软件配置步骤与常见问题排查方法。该方案实现了Type-C接口的DisplayPort AltMode显示输出、USB Device/Host模式自动切换等功能,为嵌入式系统Type-C接口开发提供参考

qq_34478161的博客 808

一文搞懂蚁群算法Ant Colony Optimization(ACO)!!!(灵感起源+数学原理+代码实现+实战应用)

本文系统介绍了蚁群算法的原理与实现。首先从蚂蚁觅食行为出发,阐释了信息素正反馈机制如何引导群体找到最短路径。随后详细解析了算法的数学模型,包括状态转移规则和信息素更新机制。通过MATLAB代码演示了算法在旅行商问题(TSP)中的应用,展示了路径构建和优化的完整流程。最后讨论了算法的优势、局限性和实际应用场景。蚁群算法通过模拟生物智能,为解决复杂优化问题提供了一种高效方法,其核心在于信息素的正反馈机制与随机探索的平衡。

qq_42212808的博客 887
上一篇: 搭建基于ubuntu的内核开发环境
下一篇: 创新管理案例分析--PC巨头们的移动之路
AutoAsm
博客等级 码龄27年 27粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值