C++初学者应当看的一本好书,蔡学镛鼎力推荐——华中科技大学出版社出版台湾张耀仁著《C++程序设计与应用》!

yeka 2002-11-21 05:09:29
考虑到本书的读者主要是学生,所以尽管装帧印刷质量都不错,而且篇幅不小(16开,750页,带光盘),但定价很便宜,只有59.80元,比同样篇幅的《深入浅出MFC》要便宜20元。


蔡学镛的序言:


我常常推荐编程技术书籍,我所推荐的书目中,几乎都是英文版原文书,鲜有台湾作者的中文版著作,原因在于:

l.值得推荐的著作都已经被识货的人推荐了,不差我一个。
2.不值得推荐的烂书也有人睁着眼睛说瞎话地推荐了。
3.内容不错的著作已经不多,糟糕的是这些书常常都有后制的许多瑕疵,所以离完美还有一段距离。
4.自古文人相轻,我基于见不得他人好的自私心态,很不愿意推荐别人的中文版著作来长他人志气,灭自己威风 。

最近,我发现一本C++繁体中文版著作,可以说是各方面都达到完美的境界,甚至比起该领域大多数的英文版原文书都好太多了,实在难能可贵,所以我就破例一次,“外举不避仇”,向大家推荐张耀仁教授所撰写的这本书。

“外举不避仇”当然只是玩笑话,我非但和该作者无冤无仇,我根本就不认识作者,连E-mail都没有往来过。在这样的情况下,我对这本书的喜好没有“儿女私情”的因素在内,所以可以算是很客观的。我也很高兴自己能发挥一些影响力,向华中科技大学出版社的周筠女士引荐此书,让一本严谨的好书能在大陆以简体中文出版,造福大陆的C++读者。

作者张教授是英国牛津大学博士,现任教于台湾的长庚大学,对于资讯工程领域相当专精。本书也因此反映出作者严谨的学者性格,以及务实的工程背景,相当与众不同。

孙明宗教授为此书所写的“推荐序”中提到,本书共历时两年完成,在撰写的过程中,作者张教授参考了数十本中英文相关著作,并撰写了数百个程序以为实验。我认为,张教授如此严谨的作风,简直是以写论文的心态在进行。在编程烂书充斥的台湾市场,还有张教授肯花如此的心力投入编程书籍的撰写,实在让人佩服。我想,中文信息图书市场如果能多一些像张耀仁教授和侯捷老师等人的著作出现,会是读者的一大福气。

许多书籍往往会因为广泛而不够深入,或因为深入而不够广泛,但是张教授所撰写的此书却能深度广度兼备,包容所有重要的主题。除了入门的主题相当完整之外,深入的主题也没有遗漏,例如对VPTR以及VTABLE都有精彩的说明。

我认为本书提供了极佳的学习步调和连贯的先后次序。本书的叙述方式主轴明显,读者不会被枝节所扰而混淆了学习主轴,所以学习效果良好,相当适合C++语言的初学者。初学者也会在阅读本书的过程中,培养出良好的程序风格、模块(module)切割方式等实用的常识。
本书有近200个完整的程序范例,可以帮助观念的理解。程序范例中的重点都使用粗体字(bold)标示,这对于读者阅读有很大的帮助,而且这些程序都是作者实际编译测试过的。

在许多小细节上,都可以看出作者和出版者的用心。书的最后附上7个极具参考价值的附录,并有提供编排良好的索引(index),让本书具有参考查询的功能。我还发现这本书每章的份量规划相当均匀,每章大致上都在30页左右,这个页数相当适合自学的读者规划学习进度,而且阅读压力也不会太大。每一章最后会有常犯的错误、重点整理以及习题,可以方便读者复习,并自我评估学习成效。文章中也适当地穿插有“提示”和“讨论”,作为学习时的指引。

虽然目前Java很热门,不久之后C#也会成为主流语言,但C/C++不会因此而过时,C/C++将一直持续它的影响力,持续成为系统程序开发的最佳选择。即使在.NET的时代,C++也会因为是Visual Studio中唯一能开发unmanaged code的语言,而保有无可取代的特定地位,所以C/C++仍然值得我们投入心力,持续关注。

如果你想好好学会C++,但是一直不得其门而入,我强烈推荐你阅读这本书,毕竟一本深入浅出兼具、理论实务同备、工程科学并重的好书,可不是到处都有的。我喜欢这本书,所以将它推荐给你,而我知道你也会对这本书爱不释手的。
蔡学镛2002年8月于台北


作者自序:

自 序

C++ 是第一个被广泛使用的对象导向程序语言 (Object-Oriented Programming Language),有许多研究机构和公司采用C++ 来发展各种用于科学计算和商用的大型应用程序。 本书提供一个使用C++ 程序语言的坚实基础,内容不仅涵盖了最基本的语法,也深入探讨了对象导向的主要精神。本书不仅适合于程序语言的初学者,也适合使用C++ 程序语言开发应用软件的工程师。
本书的撰写动机,在于提供一本「如果当年我学习 C++ 时,有这么一本书该多好」的必备引领。虽然目前国内已有为数不少关于C++ 的中文著作和翻译书籍,但这些书籍在叙述的方式,以及对于内容的取舍等与读者最相关的特质上,并不完全切合实际的需要。许多读者半途而废,甚至于在C++开发环境下舍弃C++的强大功能,继续延用较易理解的C语言。也有读者虽然勉力读完,却发现说明和举例过于简略、避重就轻,除了书上的例题外,仍然举步维艰,无法用来解决自己实际面对的问题。

为了切合国内读者的需要,本书采取简明易懂的叙述方式,并透过精心的安排的大量例题,务使每学完一章都可据以完成实用的程序,避免陷入无谓的支节。例如,如何避免语法和语意的错误,如何使用前处理指令,如何产生随机数,如何估计程序运算所花费的时间,如何从既有档案读取资料,如何将执行结果存盘,如何使用对象来仿真实际的互动关系,等等常遇到的程序写作问题,都可在本书内找到清楚的解答。本书内附超过180个完整的范例程序,全部经过符合最新ANSI / ISO标准的C++编译器测试,并能正确执行。

除了清楚完整的范例程序以外,我们对于程序实际的运作机制,譬如函数间互相呼叫的详细过程,宣告 (declaration) 和定义 (definition) 的区别,做为多型 (polymorphism) 基础的晚期联结 (late binding),虚拟函数,VPTR以及VTABLE等等主要的观念都有清楚的说明。

由于C++ 兼容并蓄的特性,对于同一个功能至少有三个以上的正确写法,全看个人的使用习惯和熟悉的程度而定。本书的特点之一,即是依序逐步介绍各种写作风格。此外,在开发一个庞大的应用程序时,基于降低开发难度,提高再利用率,利于尔后程序的修订维护,以及使架构合理化等因素,实际上无法将全部程序写成一个档案。本书详细说明如何将程序区分为许多小档案,以共同解决问题的技巧。

中文科技图书中的英文名词翻译经常造成学习的困扰。由于C++ 语言的主体原本就是用英文字汇或是其缩写所构成,强加翻译常造成阅读的困难,也不利于程序的撰写。因此,本书对于C++ 的关键词在本文中尽量中英文并列,以便于学习。为了查阅方便,我们在附录E中提供主要名词的中英翻译对照表,并在书末索引中条列所有的专有名词、C++ 的关键词和特殊符号,并标示其所在的页数,可以顺畅的进行学习。

本书共分四篇: 第一篇「C++程序语言基础」,介绍计算机的基本架构,C++ 的基本语法、资料型态和使用环境,选择和重复处理两种程序流程控制语法,以及函数和数组等等主题。学习完这个部份,就可以使用程序式程序设计(procedural programming)的语法处理许多问题。

第二篇「进阶 C++ 程序语言」,介绍指针,字符串,函数的进阶应用,前处理指令,资料流与档案的存取,输出格式,程序计时,struct 与数据结构,名称空间以及异常处理等主题。学习完这个部份,就可以具备使用档案存取资料,自由设定资料格式,并将大型程序区分为许多小档案,以解决实际问题的能力。在第九章「字符串」中,我们有一个关于编码的有趣程序,读者可以用来把电子邮件转成只有拥有破译码才能理解的文字,便于机密文件的传递。

第三篇「对象导向程序设计」,讨论类别与对象,组合与继承,多型与虚拟函数,运算子重载,样版类别和泛型程序设计等主题,以循序渐进的方式介绍封装 (encapsulation) ,继承 (inheritance) 和多型 (polymorphism) 三种对象导向语言的主要技术。 在这个部份中,我们藉助许多有意义的范例程序解说了向上转型 (upcast),抽象化,衍生类别所定义的对象之建构和解构次序,混合组合和继承以建立新的类别,重载虚拟函数,虚拟解构函数,等等被大部份介绍C++的书籍所忽略的重要主题。在第21章中,我们藉由复数演算 (特别是交流电路阻抗的计算) 的实例展示了「运算子重载」在简化程序上的强大功能。

本书所附的光盘中载有书内所有范例程序的原始程序代码,以章节编号分别存放在易于搜寻的档案夹中。只要在引用时注明出自本书,这些原始程序代码可以自由修改编译,以切合自己的需要。除了原始程序代码外,光盘中还附有已编译过的执行档,可以马上在个人计算机上体验执行的情况。此外,光盘内还附上了Borland 公司符合 ANSI/ISO 标准的最新C++ 编译器「the Free Borland C++ Builder Compiler」,只要有一台个人计算机,在不需要额外添购任何配备的情况下,立即可以展开 C++ 的学习之旅。

本书的完成必需感谢的人很多,首先是清蔚科技的王丽云小姐在打字上的协助,以及陈伟婷和张照聆两位小姐在美工设计上的细心编排;而黄淑华经理更是最后得以成书的推手。同事孙明宗教授的鼓励和讨论,以及谢天扬和博士生蔡志仁在校稿和版面上的热心协助,也是让我不感孤单的背后助力。此外,研究生丘俊杰,杨文裳,黄裕晖,陈信志,和黄铭宏,以及专题生许建丰也都先后在校稿和绘图上提供了很多协助。

本书在教学研究之余勉力写成,疏陋在所难免,读者有任何指正,盼望透过电子邮件与我联络,当在再版时更正。


谨志
Email: zen@mail.cgu.edu.tw

...全文
379 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
TYmir 2002-11-26
  • 打赏
  • 举报
回复
哪里有电子版的下载?
celeil 2002-11-26
  • 打赏
  • 举报
回复
不过想问一下……,出版了么?
celeil 2002-11-26
  • 打赏
  • 举报
回复
《C++大学教程》的翻译有概念性错误,这是不可原谅的。
yeka推荐的书没看过,打算去buy一本
lyx_1980 2002-11-24
  • 打赏
  • 举报
回复
我看过几本好书,它除了教人以语法之外,更多的是给我们一个全新的观念,观念的更新比什么都重要.

不知这本如何.
Maxdell 2002-11-23
  • 打赏
  • 举报
回复
我觉得《C++大学教程》很好,也适合初学者,79元(配光盘)
yujun366 2002-11-22
  • 打赏
  • 举报
回复
记下了
yeka 2002-11-21
  • 打赏
  • 举报
回复
这里有台湾读者对这本书的评价,大家可以看看:

http://www.4book.com.tw/PublisherBookPage/ShowPublisherSingleBookPage.hi?SSN=24932
lostpig 2002-11-21
  • 打赏
  • 举报
回复
有谁看过这书啊,谈谈感受吧~

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧