C++面向对象程序设计(第7版 影印版)
基本信息
- 作者: (美)Walter Savitch [作译者介绍]
- 译者: 周靖
- 丛书名: 国外经典教材.计算机科学与技术
- 出版社:清华大学出版社
- ISBN:9787302245469
- 上架时间:2011-1-10
- 出版日期:2011 年1月
- 开本:16开
- 页码:1042
- 版次:7-1
- 所属分类:
计算机 > 软件与程序设计 > C++ > C++
编辑推荐
畅销书十年的C++入门经典教材
结构严谨、清晰,行文诙谐幽默,妙趣横生
80+技巧提示,30+生动有趣的编程实例
60+精彩视频,410+自测题,220+编程项目
内容简介回到顶部↑
本书是最优秀的c++入门教材,深受师生欢迎。作者结合自己多年的教学经验,根据教学大纲精心设计并编写了书中内容。与此同时,还采用了很多便于读者巩固所学知识的教学特征,比如各章开始处的小节总览,书中随处可见的总结框、编程提示和编程陷阱,各章结尾处的小结、习题和编程项目等。这些非常适合初学者掌握重要的编程概念。
全书共18章,8个附录。在讲解c++基础知识之后,直接引导学生深入函数、i/o流、类、控制流程、命名空间、数组、字符串、指针和动态数组、递归、模板、指针和链表、派生类、异常以及标准模板库。
全书共18章,8个附录。在讲解c++基础知识之后,直接引导学生深入函数、i/o流、类、控制流程、命名空间、数组、字符串、指针和动态数组、递归、模板、指针和链表、派生类、异常以及标准模板库。
作译者回到顶部↑
本书提供作译者介绍
Walter Savitch 加州大学圣迭戈分校荣誉退休教授。加州大学伯克利校区博士,曾担任加州大学圣迭戈分校计算机科学系教授和认知科学跨学科博士项目主任。他在复杂性理论和并行计算模型方面具有重要贡献,研究领域包括形式语言理论和计算语言学等。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
第1章 计算机和c++编程入门 1
概述 2
1.1 计算机系统 2
1.1.1 硬件 2
1.1.2 软件 5
1.1.3 高级语言 6
1.1.4 编译器 7
1.1.5 历史回顾 9
1.2 编程和问题求解 10
1.2.1 算法 10
1.2.2 程序设计 11
1.2.3 面向对象编程 12
1.2.4 软件的生命周期 13
1.3 c++入门 14
1.3.1 c++语言的起源 14
1.3.2 一个c++示范程序 15
1.3.3 陷阱:在\n中错误地使用斜杠 17
1.3.4 编程提示:输入和输出语法 17
1.3.5 简单c++程序的布局 18
1.3.6 陷阱:在include的文件名前错误地添加一个空格 19
概述 2
1.1 计算机系统 2
1.1.1 硬件 2
1.1.2 软件 5
1.1.3 高级语言 6
1.1.4 编译器 7
1.1.5 历史回顾 9
1.2 编程和问题求解 10
1.2.1 算法 10
1.2.2 程序设计 11
1.2.3 面向对象编程 12
1.2.4 软件的生命周期 13
1.3 c++入门 14
1.3.1 c++语言的起源 14
1.3.2 一个c++示范程序 15
1.3.3 陷阱:在\n中错误地使用斜杠 17
1.3.4 编程提示:输入和输出语法 17
1.3.5 简单c++程序的布局 18
1.3.6 陷阱:在include的文件名前错误地添加一个空格 19
译者序回到顶部↑
大道之简
最近在看《罗素回忆录:来自记忆的肖像》,罗素的行文向来字字珠玑,具有很强的感染力,能够引起读者的共鸣,能够给读者很多启发。其中有一篇小文介绍他是如何写作的。他在文中讲到:“我希望用最少量的词便能够把每件事情说得一清二楚。我肯花时间设法找出最简洁的方式把某些事情毫不含糊地表达出来,为此,往往不惜牺牲追求美学上优点的一切企图。”在他21岁之前,希望自己的写作风格能够接近于约翰米尔的风格,因为后者有值得他效仿的句型结构和拓展主题的方式。在经过过种种尝试之后,罗素终于醒悟,意识到对华丽词藻和张扬写作风格的模仿会诱发一定程度的虚伪性,认识到所有的模仿都是危险的,从而总结出一些简单的写作准则:
如果可以使用一个简单的词,就永远不要使用一个复杂的词;如果想要做一个包含大量必要条件在内的说明,那么尽量把这些必要条件分解到不同的句子中分别说明。
由此联想到我们的教材,一本优秀的教材,其表述方式和语言应该能够使大家都能明白,而不是充斥着只有少数博学之士才能看得懂的行话或者术语。
在这次翻译并修订Savitch老教授的《C++面向对象程序设计》的过程中,有颇多这样的感受。真正的大师,是不会一味追求形式化、科学化和精致化,使得专业知识与普通读者渐行渐远,直到彼此之间竖起不可逾越的篱笆。真正优秀的作者,不会是那些把普通读者也能明白的事情说得高深莫测,让大家云里雾里的。Savitch老先生的这本书让人感受到何为真正的大师,何为真正的优秀作者。这本书从1995年首次出版以来,经过十多年的考验,其通俗易懂、妙趣横生、与时俱进的特色,深受广大读者喜爱,被誉为“C++入门经典”,“C++入门教材的‘常青树’”。现在立足于IT行业的很多精英和骨干,很多都是在她的熏陶下成长起来的。本书目前已经修订到第7版,每次修订,都能增加新的特色,能体现时代的教学特征。。
《C++面向对象程序设计》之所以畅销不衰,与她的特色是分不开的。
第一,她文风朴实,循序渐进,可读性强(对于一本面向C++初学者的书来说,这是最起码的要求),而不像某些作者的书,思维跳跃得很厉害,读起来很费劲。大家都知道,二战期间,丘吉尔的演讲和文章最受欢迎,其中一个重要因素就是他善于用普通老百姓也能懂的浅显语言来阐述自己的观点。Savitch老先生也是这样行文的。他考虑到广大读者的需求,广泛采用浅显易懂的语言来讲授C++编程知识。为保持这一特色,我在翻译过程中,也尽量如此。无论原著还是译本,宗旨都是循循善诱地引导一个完全不懂C++的人在短时间里充分熟悉并掌握C++编程技术。稍微翻阅几页正文,您就能充分体会到这个特点。
第二,本书完全符合标准。本书的示范程序不仅完全符合最新的ANSI/ISO C++标准,还遵循行业通行的编程风格,这便于读者在学习本书之后能够写出任何程序员都可以理解、任何编译器都能通过的程序。
第三,这个特色体现在本书的组织和结构上。时下流行的一个观点是,学习C++应该先从类学起。没问题,本书在创作时便充分考虑到了这一部分读者的要求。事实上,您可以按照自己喜欢的任何顺序来阅读各章的内容。这方面的详情可参考前言所提供的“依赖图”。由于这是一本真正的教科书,所以每章都提供了丰富的、重点突出的、非常有趣的自测题和编程项目。
第四,编程实例和编程项目贴近生活。文中30多个实例,来源于学生的生活圈,比如,信用卡余额、州收入所得税、购买比萨、温度换算、超市定价系统、回文测试、体重指数等,这些都能让我们体会到编程的乐趣。
第五,第7版新增了一些习题和视频讲解。借助于这60多个视频讲解,我们可以进一步了解解题思路,牢固掌握基础知识。
一本好书,凝聚着作者很多心血。一本好的译作又何尝不是呢?不仅要仔细揣摩作者的意思,还必须在不篡改作者本意的基础上用通俗易懂的文字表达出来。译本如原作,此为“信”;文字通达,令国人一目了然,此为“达”;提炼文字,使之有文学价值,此为“雅”。
计算机科学著作虽然不是文学作品,但随着读者水平的提高,也对“雅”提出了新的要求。人们之所以需要这方面的译本,不仅是为了快速消化和吸收国外的最新技术和观点,还为了满足自己的阅读需求。所以对于译本来说,“信”和“达”固然重要,但“雅”也必不可少。这三者之间的关系是:只有做到“信”,才有可能进一步追求“达”,进而实现“雅”。
为了确保正确性,我在翻译之余把书中的示范程序全部“跑”了一遍。根据我以前的经验,每本书都有这样或那样的错误,有的书错误之多,以至于最终还要出版数十页的勘误表。但是本书的测试结果令人惊叹,它的代码具有很高的正确性,这是一些同类教科书无法媲美的。与此同时,为保证正确性,我在翻译时除了参考网上公开的原书勘误,还和原作者进行了积极而卓有成效的沟通,对原著进行的所有改动都是经过授权的。这一过程有效确保了本书简体中文版的代码质量,使之达到了百分之百的正确率。
关于术语,本书简体中文版采用了业内通行的、国内程序员非常熟悉的词汇。基于翻译的本质,我的工作是让读者无障碍地阅读文档,并积极地跟上作者的思路。假如因为某个或者许多稀奇古怪的词而阻碍了阅读,那就是翻译工作的失败,这不是您我希望见到的。
本书第4版在国内出版以来,普遍受到读者的关注和欢迎。读者朋友们普遍反映喜欢此书的写作和翻译风格,喜欢穿插于全书的编程提示与陷阱,更喜欢书中难度不一的自测题和编程项目。有很多读者来信索取编程项目的答案。我也亲自做了部分有挑战性的编程项目,这的确是全书的特色和精华。由于这部分答案仅提供给教师,所以我建议大家发邮件到coo@netease.com申请,她们将为您提供帮助。
从第5版开始,教材特色更加明显。例如,在各章开篇处,提供了能引起读者关注的小节标题(即当前章的大纲),目的是让读者更清楚地理清脉络。新增一章内容专门介绍STL(标准模板库)。自第6版开始,基本沿用了第5版的大纲,修订了部分内容,对章节进行了更合理的调整。各章开始处提供了绕有趣味的引文。这些引文要么出自计算机业界大师,权威、有见地,要么出自名著,巧妙地用双关语把互不关联的两种含义结合起来,从而达到诙谐有趣的效果。针对这部分引文,我建议编辑保留英文。众所周知,有的东西翻译出来反而会失去原有的韵味,例如至今记忆犹新的高中英语中的一篇课文(节选):
Napoleon was astonished. “Either you are mad, or I am,” he declared. “Both,sir!” cried the Swede proudly.
这里的“Both”一语双关,妙就妙在既指拿破仑和这位士兵都是疯子,又指这位战士参加过拿破仑指挥的两次战役。不过,也希望聆听大家的心声。如果您有兴趣,可以发邮件给我(transbot@vip.163.com),我将与大家一起分享心得。
最后,我想感谢原作者Walter Savitch,是他写出了这样一本极其出色的C++编程教材。感谢翻译过程中所涉及的所有人士,他们是文天山、成荣静、文瑞、苏星兰、文开阳、潘子宇、董健、顾浩云、厉明波、乔艳、王永、姜媛媛、李德武、刘纬地、张辉、代永亮、刘琨、文家焱、粱凯威、肖春雷、靳友英和乔宗彬。同时还要感谢我的乖女儿周子衿,她天真活泼、纯真可爱,现在已经很有思想和创见了,古灵精怪的新鲜想法常常给我很多灵感,我希望能够在来年,给她写一本小小说。
最近在看《罗素回忆录:来自记忆的肖像》,罗素的行文向来字字珠玑,具有很强的感染力,能够引起读者的共鸣,能够给读者很多启发。其中有一篇小文介绍他是如何写作的。他在文中讲到:“我希望用最少量的词便能够把每件事情说得一清二楚。我肯花时间设法找出最简洁的方式把某些事情毫不含糊地表达出来,为此,往往不惜牺牲追求美学上优点的一切企图。”在他21岁之前,希望自己的写作风格能够接近于约翰米尔的风格,因为后者有值得他效仿的句型结构和拓展主题的方式。在经过过种种尝试之后,罗素终于醒悟,意识到对华丽词藻和张扬写作风格的模仿会诱发一定程度的虚伪性,认识到所有的模仿都是危险的,从而总结出一些简单的写作准则:
如果可以使用一个简单的词,就永远不要使用一个复杂的词;如果想要做一个包含大量必要条件在内的说明,那么尽量把这些必要条件分解到不同的句子中分别说明。
由此联想到我们的教材,一本优秀的教材,其表述方式和语言应该能够使大家都能明白,而不是充斥着只有少数博学之士才能看得懂的行话或者术语。
在这次翻译并修订Savitch老教授的《C++面向对象程序设计》的过程中,有颇多这样的感受。真正的大师,是不会一味追求形式化、科学化和精致化,使得专业知识与普通读者渐行渐远,直到彼此之间竖起不可逾越的篱笆。真正优秀的作者,不会是那些把普通读者也能明白的事情说得高深莫测,让大家云里雾里的。Savitch老先生的这本书让人感受到何为真正的大师,何为真正的优秀作者。这本书从1995年首次出版以来,经过十多年的考验,其通俗易懂、妙趣横生、与时俱进的特色,深受广大读者喜爱,被誉为“C++入门经典”,“C++入门教材的‘常青树’”。现在立足于IT行业的很多精英和骨干,很多都是在她的熏陶下成长起来的。本书目前已经修订到第7版,每次修订,都能增加新的特色,能体现时代的教学特征。。
《C++面向对象程序设计》之所以畅销不衰,与她的特色是分不开的。
第一,她文风朴实,循序渐进,可读性强(对于一本面向C++初学者的书来说,这是最起码的要求),而不像某些作者的书,思维跳跃得很厉害,读起来很费劲。大家都知道,二战期间,丘吉尔的演讲和文章最受欢迎,其中一个重要因素就是他善于用普通老百姓也能懂的浅显语言来阐述自己的观点。Savitch老先生也是这样行文的。他考虑到广大读者的需求,广泛采用浅显易懂的语言来讲授C++编程知识。为保持这一特色,我在翻译过程中,也尽量如此。无论原著还是译本,宗旨都是循循善诱地引导一个完全不懂C++的人在短时间里充分熟悉并掌握C++编程技术。稍微翻阅几页正文,您就能充分体会到这个特点。
第二,本书完全符合标准。本书的示范程序不仅完全符合最新的ANSI/ISO C++标准,还遵循行业通行的编程风格,这便于读者在学习本书之后能够写出任何程序员都可以理解、任何编译器都能通过的程序。
第三,这个特色体现在本书的组织和结构上。时下流行的一个观点是,学习C++应该先从类学起。没问题,本书在创作时便充分考虑到了这一部分读者的要求。事实上,您可以按照自己喜欢的任何顺序来阅读各章的内容。这方面的详情可参考前言所提供的“依赖图”。由于这是一本真正的教科书,所以每章都提供了丰富的、重点突出的、非常有趣的自测题和编程项目。
第四,编程实例和编程项目贴近生活。文中30多个实例,来源于学生的生活圈,比如,信用卡余额、州收入所得税、购买比萨、温度换算、超市定价系统、回文测试、体重指数等,这些都能让我们体会到编程的乐趣。
第五,第7版新增了一些习题和视频讲解。借助于这60多个视频讲解,我们可以进一步了解解题思路,牢固掌握基础知识。
一本好书,凝聚着作者很多心血。一本好的译作又何尝不是呢?不仅要仔细揣摩作者的意思,还必须在不篡改作者本意的基础上用通俗易懂的文字表达出来。译本如原作,此为“信”;文字通达,令国人一目了然,此为“达”;提炼文字,使之有文学价值,此为“雅”。
计算机科学著作虽然不是文学作品,但随着读者水平的提高,也对“雅”提出了新的要求。人们之所以需要这方面的译本,不仅是为了快速消化和吸收国外的最新技术和观点,还为了满足自己的阅读需求。所以对于译本来说,“信”和“达”固然重要,但“雅”也必不可少。这三者之间的关系是:只有做到“信”,才有可能进一步追求“达”,进而实现“雅”。
为了确保正确性,我在翻译之余把书中的示范程序全部“跑”了一遍。根据我以前的经验,每本书都有这样或那样的错误,有的书错误之多,以至于最终还要出版数十页的勘误表。但是本书的测试结果令人惊叹,它的代码具有很高的正确性,这是一些同类教科书无法媲美的。与此同时,为保证正确性,我在翻译时除了参考网上公开的原书勘误,还和原作者进行了积极而卓有成效的沟通,对原著进行的所有改动都是经过授权的。这一过程有效确保了本书简体中文版的代码质量,使之达到了百分之百的正确率。
关于术语,本书简体中文版采用了业内通行的、国内程序员非常熟悉的词汇。基于翻译的本质,我的工作是让读者无障碍地阅读文档,并积极地跟上作者的思路。假如因为某个或者许多稀奇古怪的词而阻碍了阅读,那就是翻译工作的失败,这不是您我希望见到的。
本书第4版在国内出版以来,普遍受到读者的关注和欢迎。读者朋友们普遍反映喜欢此书的写作和翻译风格,喜欢穿插于全书的编程提示与陷阱,更喜欢书中难度不一的自测题和编程项目。有很多读者来信索取编程项目的答案。我也亲自做了部分有挑战性的编程项目,这的确是全书的特色和精华。由于这部分答案仅提供给教师,所以我建议大家发邮件到coo@netease.com申请,她们将为您提供帮助。
从第5版开始,教材特色更加明显。例如,在各章开篇处,提供了能引起读者关注的小节标题(即当前章的大纲),目的是让读者更清楚地理清脉络。新增一章内容专门介绍STL(标准模板库)。自第6版开始,基本沿用了第5版的大纲,修订了部分内容,对章节进行了更合理的调整。各章开始处提供了绕有趣味的引文。这些引文要么出自计算机业界大师,权威、有见地,要么出自名著,巧妙地用双关语把互不关联的两种含义结合起来,从而达到诙谐有趣的效果。针对这部分引文,我建议编辑保留英文。众所周知,有的东西翻译出来反而会失去原有的韵味,例如至今记忆犹新的高中英语中的一篇课文(节选):
Napoleon was astonished. “Either you are mad, or I am,” he declared. “Both,sir!” cried the Swede proudly.
这里的“Both”一语双关,妙就妙在既指拿破仑和这位士兵都是疯子,又指这位战士参加过拿破仑指挥的两次战役。不过,也希望聆听大家的心声。如果您有兴趣,可以发邮件给我(transbot@vip.163.com),我将与大家一起分享心得。
最后,我想感谢原作者Walter Savitch,是他写出了这样一本极其出色的C++编程教材。感谢翻译过程中所涉及的所有人士,他们是文天山、成荣静、文瑞、苏星兰、文开阳、潘子宇、董健、顾浩云、厉明波、乔艳、王永、姜媛媛、李德武、刘纬地、张辉、代永亮、刘琨、文家焱、粱凯威、肖春雷、靳友英和乔宗彬。同时还要感谢我的乖女儿周子衿,她天真活泼、纯真可爱,现在已经很有思想和创见了,古灵精怪的新鲜想法常常给我很多灵感,我希望能够在来年,给她写一本小小说。
前言回到顶部↑
本书适合C++程序设计和计算机科学入门课程使用。阅读本书之前,不要求读者有任何编程经验,也不要求掌握中学代数之外的其他任何数学知识。
本书前几版的读者,请仔细阅读以下解释第7版修订内容的小节,前言的其余内容则可以跳过不看。但本书的新读者,务必仔细阅读前言的所有内容,以便把握本书的脉络。
第7版修订内容
第7版采用和第6版相同的编写体例,并保留了第6版的所有内容。新增了30个编程项目,并对几章原有的编程项目进行了改编。额外增加了有关map类的说明,而且示例程序进行了更新,以便同当今使用的大多数编译器兼容。此外,本书配套网站增加了39段视频,讨论了特定的主题以及编程项目的解决方案。这些视频可辅导学生完成解决问题和编写程序的过程,并有助于加强对关键编程概念的理解。如果书中的某个主题有对应的视频,就会出现一行特殊的注释(Video Note:……)。最后,根据授课教师的反馈,有关继承的介绍性材料从第6章“I/O流”移到了第10章“定义类”。然而,对于用过第6版的授课教师,可以继续沿用以前的教案,几乎不需要进行任何改动。
自主决定主题顺序
C++主题的大多数入门教科书都有一个非常详细的进度表,授课教师必须严格遵循。但本书不准备这样做。本书能适应授课教师的教学方式,而不是要求教师来适应本书。教师可以轻松地调整章节顺序,而不失连贯性。前言末尾的图P.1展示了本书所有主题的一幅“依赖图”,它描述了各个章节的多种教学顺序。另外,每章都包含一个“预备知识”小节,说明在学习当前章内容之前,必须先学习本书哪些部分的内容。这样一来,授课教师就可以轻松地重新安排各个章节的授课顺序。
虽然本书使用了库,并强调了库的重要性,但不要求任何非标准的库。本书只使用几乎所有C++实现都会提供的库。
类的介绍可灵活提前或推后
本书允许灵活地讲授类。授课教师可以根据需要提前或推迟讲类的主题。
本书的默认安排顺序是:首先向学生讲述变量声明、表达式求值、控制结构、过程抽象、函数定义、数组和指针处理的基本概念。这样一来,学生能牢固掌握编程概念,为后期掌握面向对象编程所涉及的复杂概念奠定坚实的基础。本书第2章~第9章介绍最基础的编程概念。第6章将用文件I/O流教学生如何使用类。由于流的I/O要求使用命名空间和类库,因此在前几章,还要介绍如何使用预定义的命名空间和由标准库提供的I/O类。在第10章,学生们将学习如何编写自己的类。
打算在课程前期就介绍类的授课教师,则可以重新安排各章的顺序以便适应自己的教学需求。这方面的细节将在下页的“主题可以灵活排序”一节介绍。一般而言,授课教师可以在完成第6章的教学后立即开始第10章“定义类”。
本书采用定量方式来传授类的知识。首先教学生写一些非常简单的类,接着添加构造函数,随后重载简单操作符,重载I/O操作符,依此类推。这种定量教学方式避免学生一开始就接触大量复杂的构造和概念。但是,本书的一个目标是让学生尽可能提早学会编写现实的类定义,而不是强迫他们花大量时间写一些故意简化的类。到第11章结束时,学生就能写出完整而实用的类,实现“类”的课程目标。
继承问题将在第10章进行简单的讲述,使学生能提前接触这一概念。但是,本书要到第15章才正式教学生写自己的派生类和使用虚函数。有的授课教师选择在中级课程中再讲述这方面的主题,另一些授课教师则可能想在入门课中就讨论继承问题。如果愿意,有关继承的主题也可推迟讲述,因为第16章~第18章不需要用到继承。
面向学生的易用性
一本书必须按恰当的顺序来讲解恰当的主题,这是最起码的要求。另外,在授课教师和其他有经验的程序员看来,书中的内容必须清晰而又正确,这是另一个最起码的要求。但是,是不是符合这两项要求的书都是好书呢?答案是否定的。书中的内容必须采取有利于初学者使用的方式来编排。在这本入门教科书中,我尽力让学生觉得清楚和友好。本书以前版本的大量学生反馈证明,这种写作风格确实使内容更清晰,能使学生充分享受到学习的乐趣。
ANSI/ISO C++标准
本书完全兼容于符合最新ANSI/ISO C++标准的编译器。
高级主题
许多“高级主题”都成为标准的CS1课程的一部分。即使它们不是课程的一部分,也最好以补充材料的形式随书提供。本书提供了大量高级主题,它们既可集成到一门课程中,也可作为自学主题。本书全面讲述了C++模板、继承(包括虚函数)、异常处理和STL(Standard Template Library,标准模板库)。
小结框
本书前几版的读者,请仔细阅读以下解释第7版修订内容的小节,前言的其余内容则可以跳过不看。但本书的新读者,务必仔细阅读前言的所有内容,以便把握本书的脉络。
第7版修订内容
第7版采用和第6版相同的编写体例,并保留了第6版的所有内容。新增了30个编程项目,并对几章原有的编程项目进行了改编。额外增加了有关map类的说明,而且示例程序进行了更新,以便同当今使用的大多数编译器兼容。此外,本书配套网站增加了39段视频,讨论了特定的主题以及编程项目的解决方案。这些视频可辅导学生完成解决问题和编写程序的过程,并有助于加强对关键编程概念的理解。如果书中的某个主题有对应的视频,就会出现一行特殊的注释(Video Note:……)。最后,根据授课教师的反馈,有关继承的介绍性材料从第6章“I/O流”移到了第10章“定义类”。然而,对于用过第6版的授课教师,可以继续沿用以前的教案,几乎不需要进行任何改动。
自主决定主题顺序
C++主题的大多数入门教科书都有一个非常详细的进度表,授课教师必须严格遵循。但本书不准备这样做。本书能适应授课教师的教学方式,而不是要求教师来适应本书。教师可以轻松地调整章节顺序,而不失连贯性。前言末尾的图P.1展示了本书所有主题的一幅“依赖图”,它描述了各个章节的多种教学顺序。另外,每章都包含一个“预备知识”小节,说明在学习当前章内容之前,必须先学习本书哪些部分的内容。这样一来,授课教师就可以轻松地重新安排各个章节的授课顺序。
虽然本书使用了库,并强调了库的重要性,但不要求任何非标准的库。本书只使用几乎所有C++实现都会提供的库。
类的介绍可灵活提前或推后
本书允许灵活地讲授类。授课教师可以根据需要提前或推迟讲类的主题。
本书的默认安排顺序是:首先向学生讲述变量声明、表达式求值、控制结构、过程抽象、函数定义、数组和指针处理的基本概念。这样一来,学生能牢固掌握编程概念,为后期掌握面向对象编程所涉及的复杂概念奠定坚实的基础。本书第2章~第9章介绍最基础的编程概念。第6章将用文件I/O流教学生如何使用类。由于流的I/O要求使用命名空间和类库,因此在前几章,还要介绍如何使用预定义的命名空间和由标准库提供的I/O类。在第10章,学生们将学习如何编写自己的类。
打算在课程前期就介绍类的授课教师,则可以重新安排各章的顺序以便适应自己的教学需求。这方面的细节将在下页的“主题可以灵活排序”一节介绍。一般而言,授课教师可以在完成第6章的教学后立即开始第10章“定义类”。
本书采用定量方式来传授类的知识。首先教学生写一些非常简单的类,接着添加构造函数,随后重载简单操作符,重载I/O操作符,依此类推。这种定量教学方式避免学生一开始就接触大量复杂的构造和概念。但是,本书的一个目标是让学生尽可能提早学会编写现实的类定义,而不是强迫他们花大量时间写一些故意简化的类。到第11章结束时,学生就能写出完整而实用的类,实现“类”的课程目标。
继承问题将在第10章进行简单的讲述,使学生能提前接触这一概念。但是,本书要到第15章才正式教学生写自己的派生类和使用虚函数。有的授课教师选择在中级课程中再讲述这方面的主题,另一些授课教师则可能想在入门课中就讨论继承问题。如果愿意,有关继承的主题也可推迟讲述,因为第16章~第18章不需要用到继承。
面向学生的易用性
一本书必须按恰当的顺序来讲解恰当的主题,这是最起码的要求。另外,在授课教师和其他有经验的程序员看来,书中的内容必须清晰而又正确,这是另一个最起码的要求。但是,是不是符合这两项要求的书都是好书呢?答案是否定的。书中的内容必须采取有利于初学者使用的方式来编排。在这本入门教科书中,我尽力让学生觉得清楚和友好。本书以前版本的大量学生反馈证明,这种写作风格确实使内容更清晰,能使学生充分享受到学习的乐趣。
ANSI/ISO C++标准
本书完全兼容于符合最新ANSI/ISO C++标准的编译器。
高级主题
许多“高级主题”都成为标准的CS1课程的一部分。即使它们不是课程的一部分,也最好以补充材料的形式随书提供。本书提供了大量高级主题,它们既可集成到一门课程中,也可作为自学主题。本书全面讲述了C++模板、继承(包括虚函数)、异常处理和STL(Standard Template Library,标准模板库)。
小结框
序言回到顶部↑
清华大学出版社作为国内计算机科学教材和专业图书中的领跑者,在2010年,将迎来建社30周年庆典!30年的激情,30年的梦想,30年的不懈追求,清华出版人团结奋斗,开拓创新,书写了一幅幅改革与发展的精美画卷!
30年,在历史的长河中只是短暂的一瞬,但在清华大学出版社的发展史上,却是极为重要、最具历史意义的时期。1980年,清华大学出版社乘着改革开放的春风成立,随同我国新闻出版业一起发展壮大。特别是自上世纪90年代以后,一路高歌猛进,呈现出一派欣欣向荣的景象。
30年来,我社始终坚持为教学科研服务、为两个文明建设服务、为科教兴国战略服务、为普及和提高全民族的文化与科学素质服务的办社宗旨,依托清华大学的综合优势,把“传播先进文化、推动社会进步”作为自己的出版理念,形成了自己的品牌和鲜明的特色。在高校出版社中名列前茅,成为中宣部和新闻出版总署、教育部表彰的“全国优秀出版社”和“全国先进高校出版社”,2007年获新闻出版总署颁发的“中国出版政府奖先进出版单位” 奖,2009年荣膺新闻出版总署“全国百佳图书出版单位”。
在专注于国内原创图书出版的同时,我们也放眼世界,与国外出版社积极合作,甄选了一批优秀的精品教材。我们非常认同郁达夫对于人文大师房龙的写作风格的评价:
“房龙的这一种方法,实在是巧妙不过,干燥无味的科学常识,经他那么一写,无论大人、小孩,读他的书,往往都会娓娓忘倦了。你一行一行地读下去,就仿佛是和一位白胡须的老头儿进了历史博物馆在游览。你看见一件奇怪的东西,他就告诉你一段故事。说的时候,有这老头儿的和颜笑貌,有这老头儿的咳嗽声在内,在你到了读完的时候,却又觉得这老头儿不见了,但心里还想寻着他来再要他讲些古代的话给你听听。房龙的笔有这样一种魔力。但这不是他的独创,这不过是将文学家的手法用来讲科学而已。”
因此在选择优秀教材的过程中,目标锁定在计算机科学领域的实践者,他们具有丰富的教学经验,也有资深的实践经验,他们擅长用化繁为简,深入浅出。Walter Savitch,Anany Levitin等知名作者,都成为我们这套“国外经典教材·计算机科学与技术”的中坚力量。在编审委员会的把关下,我们这套教材在高校中已经具有一定的知名度,采用范围正在稳步增加。我们也很希望能倾听处于教学一线的教师们的心声,如果有优秀的外版教材,欢迎大家积极向我们推荐,并积极加入我们的译者队伍,让我们共同为读者奉献有价值的优秀图书,任何意见和建议都可以发送邮件到wenkaiqi@gmail.com。
清华大学出版社
30年,在历史的长河中只是短暂的一瞬,但在清华大学出版社的发展史上,却是极为重要、最具历史意义的时期。1980年,清华大学出版社乘着改革开放的春风成立,随同我国新闻出版业一起发展壮大。特别是自上世纪90年代以后,一路高歌猛进,呈现出一派欣欣向荣的景象。
30年来,我社始终坚持为教学科研服务、为两个文明建设服务、为科教兴国战略服务、为普及和提高全民族的文化与科学素质服务的办社宗旨,依托清华大学的综合优势,把“传播先进文化、推动社会进步”作为自己的出版理念,形成了自己的品牌和鲜明的特色。在高校出版社中名列前茅,成为中宣部和新闻出版总署、教育部表彰的“全国优秀出版社”和“全国先进高校出版社”,2007年获新闻出版总署颁发的“中国出版政府奖先进出版单位” 奖,2009年荣膺新闻出版总署“全国百佳图书出版单位”。
在专注于国内原创图书出版的同时,我们也放眼世界,与国外出版社积极合作,甄选了一批优秀的精品教材。我们非常认同郁达夫对于人文大师房龙的写作风格的评价:
“房龙的这一种方法,实在是巧妙不过,干燥无味的科学常识,经他那么一写,无论大人、小孩,读他的书,往往都会娓娓忘倦了。你一行一行地读下去,就仿佛是和一位白胡须的老头儿进了历史博物馆在游览。你看见一件奇怪的东西,他就告诉你一段故事。说的时候,有这老头儿的和颜笑貌,有这老头儿的咳嗽声在内,在你到了读完的时候,却又觉得这老头儿不见了,但心里还想寻着他来再要他讲些古代的话给你听听。房龙的笔有这样一种魔力。但这不是他的独创,这不过是将文学家的手法用来讲科学而已。”
因此在选择优秀教材的过程中,目标锁定在计算机科学领域的实践者,他们具有丰富的教学经验,也有资深的实践经验,他们擅长用化繁为简,深入浅出。Walter Savitch,Anany Levitin等知名作者,都成为我们这套“国外经典教材·计算机科学与技术”的中坚力量。在编审委员会的把关下,我们这套教材在高校中已经具有一定的知名度,采用范围正在稳步增加。我们也很希望能倾听处于教学一线的教师们的心声,如果有优秀的外版教材,欢迎大家积极向我们推荐,并积极加入我们的译者队伍,让我们共同为读者奉献有价值的优秀图书,任何意见和建议都可以发送邮件到wenkaiqi@gmail.com。
清华大学出版社
媒体评论回到顶部↑
全球使用最广的C++入门教材——《C++面向对象程序设计》Walter Savitch著
“我的学生和我非常喜欢这本教材,Savitch教授功力深厚,使这些枯燥的知识变得浅显易懂,而且他的行文诙谐有趣,我们师生都喜欢这样的方式。学生们告诉我,他们终于买到了一本真正货真价实的大学教材。”
——Jennifer Perkins,阿肯色州立大学小石城分校
“Savitch的这本教材在我校已经使用多年,它赢得了我们师生的一致认同。Walter Savitch用清晰、简练的风格解释了难懂的编程概念,讨论了C++语言的所有重要特色。”
——Carol Roberts,缅因州立大学
“如果说写作是一种艺术的话,它便能催生出一个艺术家。Savitch的书就是这样的艺术。它以流畅、一致且轻松愉快的方式将C++编程知识娓娓道来。”
——Coskun Bayrak,阿肯色州立大学小石城分校
“从编程基础到面向对象概念,这样的安排符合逻辑,而且高效,能让刚涉足C++编程的学生理解类和一些更高级的主题。”
——Stephen Weissman,伯灵顿社区大学
“本书符合ANSI/ISO C++标准。内容全面,涵盖C++语言的主要语法和算法的基础知识。内容详略得当。虽然涵盖内容范围很广,但是针对入门读者的特点,将重点放在C++语言的基础语法和程序设计的基本思想方面,对基础部分的讲解相对更细致。它针对入门读者,深度合适,讲解细致入微、浅显易懂。在章节结构上,也为教师调整授课内容次序留有余地,便于不同的教师对内容进行裁减和重组。在书中适时穿插自测题,方便自学读者及时复习巩固。适当地利用图示和源程序注释,便于自学读者理解。总的说来,这是一本适合初学者的好书,尤其适合没有教师指导的自学读者。”
——郑莉教授,清华大学
“我的学生和我非常喜欢这本教材,Savitch教授功力深厚,使这些枯燥的知识变得浅显易懂,而且他的行文诙谐有趣,我们师生都喜欢这样的方式。学生们告诉我,他们终于买到了一本真正货真价实的大学教材。”
——Jennifer Perkins,阿肯色州立大学小石城分校
“Savitch的这本教材在我校已经使用多年,它赢得了我们师生的一致认同。Walter Savitch用清晰、简练的风格解释了难懂的编程概念,讨论了C++语言的所有重要特色。”
——Carol Roberts,缅因州立大学
“如果说写作是一种艺术的话,它便能催生出一个艺术家。Savitch的书就是这样的艺术。它以流畅、一致且轻松愉快的方式将C++编程知识娓娓道来。”
——Coskun Bayrak,阿肯色州立大学小石城分校
“从编程基础到面向对象概念,这样的安排符合逻辑,而且高效,能让刚涉足C++编程的学生理解类和一些更高级的主题。”
——Stephen Weissman,伯灵顿社区大学
“本书符合ANSI/ISO C++标准。内容全面,涵盖C++语言的主要语法和算法的基础知识。内容详略得当。虽然涵盖内容范围很广,但是针对入门读者的特点,将重点放在C++语言的基础语法和程序设计的基本思想方面,对基础部分的讲解相对更细致。它针对入门读者,深度合适,讲解细致入微、浅显易懂。在章节结构上,也为教师调整授课内容次序留有余地,便于不同的教师对内容进行裁减和重组。在书中适时穿插自测题,方便自学读者及时复习巩固。适当地利用图示和源程序注释,便于自学读者理解。总的说来,这是一本适合初学者的好书,尤其适合没有教师指导的自学读者。”
——郑莉教授,清华大学
相关资源回到顶部↑
· 【推荐】众多高校学子口口相传,他们共同的选择--华清远见嵌入式学院(嵌入式Linux就业课程、3G手机开发就业课程,通过入学测试即签100%就业协议,4个月集中实训,世界500强企业成功就业保障!!!)· 【亚嵌教育 嵌入式培训专家】(嵌入式培训,嵌入式Linux培训,ARM培训,Linux培训,3G培训,Android培训,WINCE培训,DSP培训,FPGA培训,嵌入式就业培训)
· 程序员的7种武器(正则表达式、编程语言、数据库、算法、软件调试、开发环境)
· C/C++ 经典著作(《C专家编程》《C++ Templates中文版》《C和指针 》《C陷阱与缺陷》《C++沉思录》)







点击看大图


加载中...

