C++面向对象程序设计(第6版)

C++面向对象程序设计(第6版)"

作者:周靖
ISBN:9787302152392
定价:¥69.80
字数:千字
页数:
出版时间:2007.06.01
开本:
版次:1-3
装帧:
出版社:清华大学出版社
简介

    本书是最优秀的C++入门教材之一,在全球已经拥有数十万读者。作者结合自己多年的教学经验,根据教学大纲精心设计并编写了书中内容。与此同时,还采用了很多便于读者巩固所学知识的教学特征,比如各章开始处的小节总览,书中随处可见的总结框、编程提示和编程陷阱,各章的自测题及结尾处的小结、编程项目等。这些非常适合初学者掌握重要的编程概念。

    全书共18章,8个附录。在讲解C++基础知识之后,直接引导学生深入函数,I/O流,类,控制流程,命名空间,数组,字符串,指针和动态数组,递归,模板,指针和链表,派生类,异常以及标准模板库。

   第6版重要特色:

• Savitch无可比拟的清晰、简练的写作风格

• 广泛应用范例、练习和项目来促进学生认识和养成良好的编程习惯

• 提前介绍循环和数组

• 深入讨论调试技巧

• 所有范例代码均根据ANSI/ISO规范进行更新

• 编程范例、编程提示和编程陷阱提示贯穿全书

• 411个自测题(含答案)和198个编程项目

前言

前    言

  本书适合C++程序设计和计算机科学入门课程使用。阅读本书之前,不要求读者有任何编程经验,同时也不需要掌握高中代数之外的其他任何数学知识。

  本书前几版的读者,只需仔细阅读以下解释第6版修订内容的小节,其他内容完全可以跳过不看。但本书的新读者,务必仔细阅读的所有内容,了解本书的概貌。

第6版修订内容

  第6版采用和第5版相同的编程体系,并保留了第5版的所有内容,每章都增加了编程项目,还额外增加了字符串和调试方面的材料。此外,根据授课教师的反馈,循环相关知识和数组相关知识,都移到本书的开始部分进行介绍。因此,对类的介绍稍微往后移了一下。不过,如果是用过第5版的授课教师,可以继续沿用以前的教案,无需进行任何改动。后文“重新排序1:提前学习类”将介绍如何重新调整各章顺序,以便沿用第5版的教案进行教学。

自主决定主题顺序

  C++主题的大多数入门教科书都有一个非常详细的进度表,授课教师必须严格遵循。但本书不准备这样做。对于授课教师,本书能适应您的教学方式,而不是要求教师来适应这本书。可轻松地更改章节顺序,这样做并不会失去阅读本书时的连续性。末尾的图P.1展示了本书所有主题的一幅“依赖图”。另外,每章都包含一个“预备知识”小节,说明在学习当前章内容之前,必须先学习哪些章的内容。这样一来,授课教师就可以轻松地重新安排各个章节的授课顺序。

  虽然本书使用了库,并强调了库的重要性,但不要求任何非标准的库。本书只使用几乎所有C++实现都提供了的库。

可以随意提前或推迟介绍类

  本书允许灵活地讲授类。授课教师可以提前或推迟介绍类。

  本书的默认安排顺序是:首先向学生介绍变量声明、表达式求值、控制结构、过程抽象、函数定义、数组和指针处理的基本概念。这样一来,学生能牢固掌握编程概念,为后期掌握面向对象编程所涉及的复杂概念奠定扎实的基础。本书第2章~第9章介绍了最基础的编程概念。在第6章,文件I/O流用于教学生如何使用类。因为I/O流不要求使用命名空间和类库,因此在前几章,我们还要介绍如何使用预定义的命名空间和几个标准库I/O类。在第10章,学生们将学习如何编写自己的类。

  打算在课程前期就介绍类的授课教师,则可以重新安排各章的顺序以便适应自己的教学需求。这方面的细节将在后文“主题可以灵活排序”提供。一般而言,授课教师可在完成第6章的教学后立即介绍第10章“定义类”。

  本书采用定量方式来传授类的知识。先教学生写一些非常简单的类,然后添加构造函数,再重载简单操作符,再重载I/O操作符<<和>>,依此类推。这种定量教学方式避免学生一开始就接触大量复杂的构造和概念。但是,本书的一个目标是让学生尽可能提前地编写现实的类定义,而不是强迫他们花大量时间去编写一些故意简单化的类。到第11章结束时,学生就能写出完整而实用的类,实现“类”的课程目标。

  继承问题主要在第6章讲述,使学生能提前接触这一概念。但是,本书要在晚些时候才教学生写自己的派生类,因为在一门初学课程刚开始的时候,继承和派生类的重要性往往显示不出来。第15章教学生如何定义和使用派生类,其中包括使用虚函数。有的授课教师选择在第二门课中再讲述这方面的主题,另一些授课教师则可能想在第一门课中就讨论继承问题。如果愿意,有关继承的主题也可推迟介绍,因为第16章~第18章不需要用到继承。

面向学生的易用性

  一本书必须按恰当的顺序来讲解恰当的主题,这是一个最起码的要求。另外,以授课教师和其他有经验的程序员的眼光来看,书中的内容必须清晰而又正确,这是另一个最起码的要求。但是,是不是符合这两项要求的书都是好书呢?答案是否定的。书中的内容必须采取初学者容易使用的一种方式来编排。在这本入门教科书中,我尽力让学生觉得清楚和友好。根据用过本书以前版本的许多学生的反馈,证明这种写作风格确实使素材更清晰,而且通常都能为学生带来乐趣。

ANSI/ISO C++标准

  本书完全兼容于符合最新ANSI/ISO C++标准的编译器。

高级主题

  许多“高级主题”都成为标准的CS1课程的一部分。即使它们不是课程的一部分,也最好以补充材料的形式随书提供。本书提供了大量高级主题,它们既可集成到一门课程中,也可作为自学主题。我们全面讲述了C++模板、继承(包括虚函数)、异常处理和STL(Standard Template Library,标准模板库)。

总结框

  每个要点都用一个有底纹的方框来总结。这些总结框散布于每一章。

自测题

  每章都在重要位置提供了大量自测题。每章末尾给出了所有自测题的完整答案。

课堂实测

  世界各地数十万学生都用过本书的前5版。许多学生和他们的授课教师都提供了有益的反馈意见,让我了解哪些适用于他们,哪些则不适用。大多数意见都积极地肯定了本书,表明大多数学生和授课教师都非常喜欢这种写作风格。当然,还有一些建议要求我对本书进行修订。所有修订意见都得到了仔细的考虑。正是基于这些宝贵的意见,这一版才能够逐渐成形,最终摆上您的案头。相较于以前各版,这一版能更好地满足学生和授课教师的需要。

主题可以灵活排序

  本书允许授课教师自由地重新安排教学材料。为了展示这一灵活性,我们推荐了多种方式来排列主题顺序。采用推荐的任何一种方式来阅读本书,都不失连贯性。为了确保这种连贯性,您可能需要移动小节而不是整章。但是,只有处于方便位置的大型小节才需要移动。为了帮助您根据需要来自定义一个教学/阅读顺序,图P.1展示了一幅依赖图。另外,每章都有一个“预备知识”小节,它解释了在继续本章的学习之前,事先需要阅读哪些章。

  重新排序1:提前学习类

  本版主体的顺序与第5版基本一样。为了有效的设计类,学生需要掌握一些基本的工具,比如控制结构和函数定义。这些基础知识在第1章~第6章介绍。在完成第6章的学习后,学生可以编写自己的类了。要想提前学习类的知识,可采用下面的建议调整各章的顺序。

* 基础知识:第1章、第2章、第3章、第4章、第5章和第6章。这6章全面介绍了控制结构、函数定义和基本的文件I/O。第3章额外介绍了几种控制结构,如果希望尽早学习类,可以考虑推迟学习这一章的内容。

* 类和命名空间:第10章、第11章的11.1节和11.2节、第12章。这些章节全面介绍了如何定义类、友元、重载操作符和命名空间。

* 数组、字符串和向量:第7章和第8章

* 指针和动态数组:第9章

* 类中的数组:第11章的11.3节和11.4节

* 继承:第15章

* 递归:第14章(或者把递归推迟到入门课程之后的其他课程讲解)

* 指针和链表:第13章

  可能还会用到以下各章的部分内容:

* 异常处理:第16章

* 模板:第17章

* 标准模板库:第18章

  重新排序2:把类的学习稍微延后一点,但仍然放在前面来进行

  在第6版中,在介绍类之前,全面介绍了所有控制结构和数组的基本知识,但类的介绍仍然比前面所提到的晚,只是比本书原有的顺序略微早一些。

* 基础知识:第1章、第2章、第3章、第4章、第5章和第6章。这6章全面介绍了控制结构、函数定义和基本的文件I/O

* 数组和字符串:第7章、第8章的8.1节和8.2节

* 类和命名空间:第10章、第11章的11.1节、11.2节和第12章。这些章节全面介绍了如何定义类、友元、重载操作符和命名空间

* 指针和动态数组:第9章

* 类中的数组:第11章的11.3节和11.4节

* 继承:第15章

* 递归:第14章(或者把递归推迟到入门课程之后的其他课程讲解)

* 向量:8.3节

* 指针和链表:第13章

  可能还会用到以下各章的部分内容:

* 异常处理:第16章

* 模板:第17章

* 标准模板库:第18章

支持材料

  部分支持材料是本书所有用户都能使用的。另一部分只有符合条件的教师才能使用。

  针对本书所有读者

  本书任何读者,只要访问http://www.aw.com/codemate/,就可以直接获得本书源代码和PowerPoint演示文稿。

  针对符合条件的教师

  选用本书作为教材的教师,可联系培生(北京)代表处,或者致函coo@netease.com,了解详情。

* Addison-Wesley myCodemate教师访问权限

* 教师资源指南(Instructor’s Resource Guide):包括每一章的教学要点、课堂测验/答案和大量编程项目的答案

* Test Bank和Test Generator:用于生成试卷

* PowerPoint幻灯片:包括本书的程序和插图

* Lab Manual(实验手册)

依赖图

  依赖图展示了各个章节可能的排序方式。连接两个框的实线表明上部的框必须先于下部的框完成。只要符合这个条件,那么采用任何阅读顺序都不会损失连贯性。如果一个框中包含小节编号,表明该框只代表那些小节,不代表全章。

图P.1  依赖图

  

VIII

C++面向对象程序设计

  

XI

  

  

  

  

  

  

  

  

  

目录

第1章 计算机和C++编程入门 1 

第2章 C++基础知识 27 

第3章 更多的控制流程 73 

第4章 过程抽象和返回一个值的函数 119 

第5章 所有子任务的函数 165 

第6章 I/O流——对象和类入门 199 

第7章 数组 251 

第8章 字符串和向量 297 

第9章 指针和动态数组 333 

第10章 定义类 353 

第11章 友元函数、重载操作符和数组 399 

第12章 独立编译和命名空间 455 

第13章 指针和链表 481 

第14章 递归 513 

第15章 继承 543 

第16章 异常处理 579 

第17章 模板 601 

第18章 标准模板库 621 

附录1 C++关键字 656 

附录2 操作符的优先级 657 

附录3 ASCII字符集 658 

附录4 部分库函数 659 

附录5 内联函数 663 

附录6 重载数据索引方括号 664 

附录7 this指针 665 

附录8 将操作符重载为成员操作符 667

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个