Programming 版 (精华区)
发信人: JJason (C++ Primer), 信区: Programming
标 题: 作者自序: C++程序设计与应用
发信站: 哈工大紫丁香 (2002年11月25日13:25:49 星期一), 站内信件
C++ 程序设计与应用
作者自序:
自 序
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
--
人生,就是一团欲望:
欲望没有满足的时候就是痛苦,
欲望被满足的时候就是无聊;
人生就是在痛苦与无聊之间徘徊。
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.229.69]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.291毫秒