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 (ed: this book was published in 1993) 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.
Intended Audience:
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 demonstrate how it merely combines all the good programming principles that you always wanted to employ into a coherent approach. As a result, you may well become a more proficient ANSI-C programmer.
http://www.cs.rit.edu/~ats/
通过这本书你可以明白C++, Java, Python 等面向对象语言中的类、继承、实例、连接、方法、对象、多态... 都是如何实现的. 能让你通过C来写出优美并可以重用的代码. 中文地址: http://wiki.chinaunix.net/index.php/OOC
评分通过这本书你可以明白C++, Java, Python 等面向对象语言中的类、继承、实例、连接、方法、对象、多态... 都是如何实现的. 能让你通过C来写出优美并可以重用的代码. 中文地址: http://wiki.chinaunix.net/index.php/OOC
评分有人在stackover上问:如何用C写出面向对象的代码?回答的人推荐了这本书。正巧,这也是我想问的问题,于是看了这本书。 C是一个非常灵活的语言,而面向对象是一种思想。作者认为这两者并不冲突,而是可以完美的结合在一起,并且我们可以从中享受到许多乐趣。这本书详细的介绍...
评分通过这本书你可以明白C++, Java, Python 等面向对象语言中的类、继承、实例、连接、方法、对象、多态... 都是如何实现的. 能让你通过C来写出优美并可以重用的代码. 中文地址: http://wiki.chinaunix.net/index.php/OOC
评分通过这本书你可以明白C++, Java, Python 等面向对象语言中的类、继承、实例、连接、方法、对象、多态... 都是如何实现的. 能让你通过C来写出优美并可以重用的代码. 中文地址: http://wiki.chinaunix.net/index.php/OOC
我是在寻找提升C语言底层设计能力的进阶读物时偶然翻到这本书的,本来期望能看到一些关于设计模式在C语言环境下的创新应用,但实际内容却让我有些啼笑皆非。这本书似乎沉迷于“如何用纯C语言做到OOP”这一哲学命题,而忽略了现代编程的效率和可读性。它的语言风格非常学院派,充斥着大量的理论推导和对早期计算机科学先驱思想的引用,读起来非常“沉重”。书中对虚函数表(vtable)的模拟实现简直是一场对指针算术的极限挑战,每一步都需要我反复对照汇编级的操作才能确信其逻辑的正确性。对于那些习惯了C++编译器自动处理虚函数调用的程序员来说,这种手动维护调用链的方式,读起来简直像在看一本老式的硬件手册。我尝试用书中的方法重构了一个小型的库,结果发现代码量暴增,可维护性急剧下降,调试起来更是噩梦一场。这本书的价值可能在于让你深刻理解OO语言背后的机制,但它提供的“解决方案”在实际工程中几乎是不可用的,更像是一种智力上的炫技。
评分老实说,阅读这本书的体验,就像是去博物馆看一台古老的机械计算器。它精巧,它复杂,它展示了人类的智慧,但你绝对不会想把它搬回家去处理你的日常账单。作者似乎将全部精力都投入到了如何“欺骗”编译器,让C语言在语法和语义上表现出非C语言的特性。我花了整整一个周末来理解书中关于“向上转型”的那几页内容,那简直是对C语言指针算术的终极考验。书中对如何模拟类的构造函数和析构函数的论述,充满了大量的宏和预处理技巧,代码的可读性已经降到了冰点。当你试图调试一个由这些宏构建的复杂对象体系时,预处理器展开后的代码量足以让你怀疑人生。这本书的最大缺陷在于,它没有提供一个清晰的、可扩展的框架。它展示了“如何实现”,但没有告诉你“在什么情况下应该实现”,更没有提供一套标准化的、可维护的“C语言OO库”的构建指南。它留给读者的,只有一堆令人头晕目眩的底层技巧,而非实用的设计哲学。
评分这本书的排版和结构设计简直是挑战读者的耐心极限。章节之间的逻辑跳跃性非常大,前一章还在讨论结构体对齐,下一章突然就开始探讨多态性的运行时绑定机制,中间缺乏必要的平滑过渡。作为一本专注于面向对象范式的书籍,它对“继承”和“多态”这两个核心概念的阐述,似乎是采用了逆向工程的思路——先展示结果,再费力地去拼凑出实现它的C语言“补丁”。我尤其不满意的是,书中对错误处理和异常机制的讨论几乎是付之阙如的,这对于任何严肃的软件开发都是一个致命的缺陷。面向对象的核心优势之一在于其模块化和清晰的边界划分,但在这本书的实践案例中,我看到的更多是全局变量的滥用和通过复杂指针传递实现的耦合。或许作者的本意是想展示C语言的灵活性,但结果却是展示了在没有强类型和内置OO支持下构建复杂系统的难度。这本书更适合那些已经精通C语言,并且热衷于探索语言极限的“语言考古学家”,而非寻求实用编程技巧的工程师。
评分这本关于面向对象编程的C语言书籍,说实话,让我这个资深的C语言老手都有点摸不着头脑。我原本以为它会像其他流行的OOC语言书籍那样,清晰地阐述C++或者Java中的概念,但这本书的切入点非常独特,简直是在用一种“原始”的方式来模拟面向对象。它没有依赖任何现代编译器的魔术,而是深入到了指针、结构体和函数指针的最底层。我花了大量时间去理解它如何通过宏定义和特定的内存布局来实现封装和继承的“假象”。坦白讲,这种学习过程更像是在解一个复杂的谜题,而不是接受一套成熟的编程范式。书中对于内存管理和底层数据结构的剖析极为细致,如果你想彻底明白C语言在硬件层面是如何运作的,这本书绝对能满足你对“黑盒”的好奇心。但对于只想快速掌握面向对象思想并应用于实际项目的开发者来说,这种“徒手”构建OO模型的学习路径可能过于冗长和晦涩。书中引用的例子往往是高度抽象的,缺乏现代软件工程中常见的业务场景支撑,使得理论与实践之间的桥梁搭建得有些吃力。总的来说,它更像是一部理论深挖的学术著作,而不是一本实用的编程指南。
评分这本书的语言风格极其老派和晦涩,它似乎假设读者已经对编译原理和底层内存布局了如指掌。当我翻到介绍接口和抽象类的部分时,我发现作者直接使用了大量晦涩难懂的函数指针数组和特定的结构体顺序来构建所谓的“抽象层”。这种方法完全依赖于程序员的“心照不宣”和对特定实现细节的记忆,任何一个稍有疏忽的改动,都可能导致程序在运行时出现无法预期的行为。更令人沮丧的是,书中几乎没有提供任何关于性能优化的讨论。虽然使用C语言实现OO的初衷可能是为了追求极致性能,但书中展示的这些“模拟”层,反而引入了大量的间接跳转和内存寻址开销,其性能表现可能还不如直接编写过程化代码。这本书更像是作者个人对C语言潜力的深度探索笔记,而不是一本面向大众读者的教材。它缺乏面向开发者的清晰蓝图,更像是一份关于“在C语言中实现OO的理论可行性证明”,对于我这种需要快速提升项目效率的开发者而言,其价值非常有限。
评分也是一个面向语言编程的简单应用
评分展示了一种实现面向对象语义的方法。其中的思想对使用c书写灵活的代码很有帮助,值得借鉴,但是实际工作中不太可能会用这本书里构建的ooc去写代码。
评分第一次看时感觉很神奇啊,没想到C还能这么写。可以基本理解OOP是怎么实现的
评分等C++用的熟练之后,再读下去
评分面试
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有