没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
11页
C++程序设计之四书五经(上篇) C++是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,C++已经在许多重要的领域大获成功。 然而,一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈反弹,而在高阶程序设计领域,Java和C#正在不断蚕食着C++的地盘。也许C++与C合为一体永远都是一个梦想,也许Java和C#的狂潮终将迫使C++回归本位 — 回到它有着根本性优势的开发领域:低级系统程序设计、高级大规模高性能应用设计、嵌入式程序设计以及数值科学计算等。果真如此,我认为这未尝不是一件好事。
资源推荐
资源详情
资源评论
C++程序设计之四书五经(上篇)
C++是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现实问
题的能力,使其极具学术研究价值和工业价值。和 C 语言一样,C++已经在许
多重要的领域大获成功。
然而,一个不可否认的现实是,在低阶程序设计领域,C++挤压着 C 同时也在
承受着 C 的强烈反弹,而在高阶程序设计领域,Java 和 C#正在不断蚕食着 C++
的地盘。也许 C++与 C 合为一体永远都是一个梦想,也许 Java 和 C#的狂潮终将
迫使 C++回归本位 — 回到它有着根本性优势的开发领域:低级系统程序设计、
高级大规模高性能应用设计、嵌入式程序设计以及数值科学计算等。果真如此,
我认为这未尝不是一件好事。
C++吸引如此之多的智力投入,以至于这个领域的优秀作品,包括重量级的软
件产品、程序库以及书籍等,数不胜数。文题“C++程序设计之四书五经”一个不
太严格的含义是:C++程序设计之四书 ⅹ 五经。是的,在本文(及其下篇)中,
我将分门别类推荐 20 多本 C++好书,你可以根据自己的需要选读。
TCPL 和 D&E
TCPL 和 D&E 分别是《The C++ Programming Language 》和《The Design and
Evolution of C++》的简称,均出自 Bjarne Stroustrup 之手。我将它们单列出来,
首先是因为 Bjarne 是 C++语言的创建者,然后是因为比“首先”那个原因更重要
的原因:这两本书是 C++领域毋庸置疑的杰作。说它们是 C++语言圣经,并不
为过。
Bjarne Stroustrup, The C++ Programming Language (Special 3rd Edition)
《C++程序设计语言(特别版)》,机械工业出版社
《C++程序设计语言(特别版)(英文影印版)》,高等教育出版社
迄今为止,TCPL 是除了 C++标准文献之外最权威的 C++参考手册。和大多数
人的看法不大一样,我认为 Bjarne 的文字语言并不逊色于他所创建的程序语言,
至少我喜欢这种学院气息浓厚的作品。本书对 C++语言的描述轮廓鲜明、直截
了当。它从 C++语言创建者的角度来观察 C++,这是任何别的作者和书籍做不
到的 — 没有任何人比 Bjarne 自己更清楚该怎么来使用 C++。
这是一本严肃的著作,以中、高级 C++开发人员为目标读者。如果你是一名有
经验的 C++程序员,需要了解更加本质的 C++知识,本书正是为你而写。它不
是那种让你看了会不断窃喜的小书,需要用心体会,反复咀嚼。在阅读过程中,
请特别留心 Bjarne 先生强调了什么,又对什么一语带过。我个人比较喜欢这本
书的第四部分“使用 C++做设计”,这样的内容在类似的程序设计语言书籍中很
难看到 — 我甚至认为 Bjarne 应该将这部分独立出来单独写一本书。
Bjarne Stroustrup, The Design and Evolution of C++
《C++语言的设计和演化》,机械工业出版社
《C++语言的设计和演化(英文版)》,机械工业出版社
D&E 是一本关于 C++语言设计原理、设计决策和设计哲学的专著。它清晰地回
答了 C++为什么会成为今天这个样子而没有变成另外一种语言。作为 C++语言
的创建者,Bjarne 淋漓尽致地展示了他独到而深刻的见解。除了广受赞誉的语
言特性外,Bjarne 没有回避那些引起争议的甚至被拒绝的 C++特性,他一一给
出了逻辑严密、令人信服的解释。内容涵盖 C++的史前时代、带类的 C、C++
的设计规则、标准化、库、内存管理、多重继承、模板等,对包括异常机制、
运行时类型信息和名字空间在内的重要的新特性都分别进行了深入探讨。每一
名 C++程序员都应该可以从 Bjarne 的阐释中加深对手中这门语言的认识。
需要再次提醒的是,这两本书知识浓缩,信息量极大,请不要错过 Bjarne 每一
句看似漫不经意的话。
入门教程
学习任何一门语言都需要一个从入门到精通、从新手到高手循序渐进的过程。
不过,对于一个所谓的新手而言,究竟是一个完完全全的新手,还是一个熟悉
某种别的语言的“新手”,甚至是在某种语言程序设计领域已经颇有建树的高手,
很难一概而论?不同的 C++新手需要不同的入门书籍。
Andrew Koenig, Barbara E. Moo, Accelerated C++: Practical Programming by
Example
《Accelerated C++中文版》,中国电力出版社
和市面上大多数 C++教程不同,本书不是从“C++中的 C”开始讲解,而是始于地
道的 C++特性。从一开始就使用标准库来写程序,随着讲述的逐渐深入,又一
一解释这些标准库组件所依赖的基础概念。另外,和其他 C++教材不同的是,
这本书以实例拉动语言和标准库的讲解,对后两者的讲解是为了给实例程序提
供支持,而不是像绝大多数 C++教材那样,例子只是用作演示语言特性和标准
库用法的辅助工具。
作者在 C++领域的编程实践、教育培训以及技术写作方面都是世界一流水准。
我喜欢这种大量使用标准库和 C++语言原生特性的清新的写作风格。在这本教
材面前,几乎迄今为止的所有 C++教材都黯然失色或显得过时。尽管这本教材
也许对于国内的高校教育来说有些前卫,不过我仍然极力向我的同行们推荐。
顺带一提,在 Bjarne 和我最近的一封通信里,他这样评价本书:对于有经验的
程序员学习 C++而言,这本书可能是世界上最好的一本。
Stanley B.Lippman, Josee Lajoie, C++ Primer (3rd Edition)
《C++ Primer (3RD)中文版》,中国电力出版社
这本书的名字多少有点让人误解。尽管作者声称这本书是为 C++新手而写,但
无论是它的厚度还是讲解的深度都暴露了似乎并非如此。也许说它是一本“从入
门到精通”的 C++教程会更合适一些。我个人认为它并不适合完全不懂 C++的初
学者 — 在阅读这本书之前,你至少应该先有那么一点 C 或 C++的背景知识,或
者至少要具有一些其他语言的编程经验。
尽管这本书省略了一些高级 C++特性的讨论,但仍然可以称得上是迄今为止最
全面的 C++学习教程。事实上,如果一名 C++初学者能够扎扎实实地读完本书
并对照《C++ Primer Answer Book》完成全部习题的话,他的水平肯定可以进入
职业 C++程序员的行列。我个人认为,即使你已经拥有了 TCPL,这本书依然
有拥有的价值,因为在许多方面它比 TCPL 来得更详细、更易懂。
Stanley B. Lippman, Essential C++
《Essential C++中文版》,华中科技大学出版社
《Essential C++(影印版)》,中国电力出版社
可以不太严格地认为这本书是《C++ Primer》的精简版。本书一一讲述了 C++
中最具代表性的主题,包括过程式编程、泛型编程、基于对象编程、面向对象
编程、模板编程以及异常处理等。Stanley 将门槛调低到“具有其他语言程序设计
经验”的 C++新手所能接受的最基本的层次,使他们能够迅速开始使用 C++编程
而又免于阅读《C++ Primer》那样的大部头。它以实例引导学习,力图使读者
在最短的时间内把握 C++的精粹。
也许换一个人来概述 C++编程范型(paradigm)的方方面面需要好几百页才能
说清楚,但这本小书不可思议地做到了这一点。我个人非常喜欢这种满是技术、
简明扼要并且“有话好好说”的书。这本书同样具有一个明显的风格:所有程序
例子全部采用标准库组件,让人耳目一新。
以上三本书都不是为了完完全全的编程新手而写。完全的 C++编程新手可以阅
读 Francis Glassborow 的 新 书 ( 尚 未 出 版 ) : 《 A Beginners Introduction to
Computer Programming : You Can Do It! 》 。这 也是 Bjarne 的 推 荐 。 Francis
Glassborow 是 ACCU 主席,多年来他对几乎每一本 C++经典名著评头论足,他
自己的这一本自然会引起 C++社群的极大兴趣。
高效、健壮编程
两年前我在负责一个省级电力调度系统项目时编写了一个网关程序,它从
SCADA 系统获取电力实时信息。通讯接口采用了不常用的数据库直连方式(这
个网关程序一端连接 SQL Server 6.5,另一端连接 Oralce 8.1.6)。由于实时测点
近万,每次将全部取样更新或插入一遍显然是低效的。我在网关程序里建了一
个内存库,获取到的数据首先在其中进行比较,然后决定是否更新物理数据库
(同时还做了别的更复杂的事情……),从而在效率和资源占用两方面达到了
预期效果。
这个程序一直运行得很好,但在离开现场之后的某一天,系统管理员打来电话,
剩余10页未读,继续阅读
资源评论
AlejandroSeaah
- 粉丝: 7
- 资源: 41
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功