c++语言简介 .pdf
《c++语言简介 .pdf》由会员分享,可在线阅读,更多相关《c++语言简介 .pdf(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+语言C+_Primer_Plus中文第五版C+是在 C 语言基础上开发的一种集面向对象编程、通用编程和传统的过程化编程于一体的编程语言,是 C 语言的超集。本书是根据2003 年的 ISO/ANSI C+标准编写的,通过大量短小精悍的程序详细而全面地阐述了 C+的基本概念和技术。全书分 17 章和 10 个附录,分别介绍了C+程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑操作符、函数重载和函数模板、内存模型和名称空间、类的设计和使用、多态、虚函数、动态内存分配、继承、代码重用、友元、异常处理技术、string 类和标准模板库、输入/输出等内容。本书针对 C+
2、初学者, 从 C 语言基础知识开始介绍,然后在此基础上详细阐述C+新增的特性, 因此不要求读者有较多C 语言方面的背景知识。本书可作为高等院校C+课程的教材, 也可供初学者自学C+ 时使用。本书享有 “ 程序员和开发人员学习C+的完整教程 ” 的美誉,它经过仔细的测试,制作精细,是计算机行业的经典著作。前4 版在美国的总销售量超过了10 万册。该书阐述了包括结构化代码和自顶向下设计在内的编程原理,涵盖了类。继承。模板。异常以及最新的面向对象编程技术等内容。作者 Stephen Prata是受人尊敬的作者和教育家,他以清晰的语言,对C+ 做了具有启发性的、见解深刻的介绍。本书在解释基本概念的同时
3、,兼顾了C+语言的细节。书中通过大量简短、易于输入的范例,每次阐述一两个概念,激励读者通过立刻应用来掌握全新的主题;而每章最后的复习题和编程练习则强调了最重要的信息,并帮助读者消化最难以理解的概念。本书是一本友好而易于使用的自学指南,适合用做编程课程的教材,也可供熟悉其他语言的开发人员参考,以更深入地理解C+语言的基本知识。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 35 页 - - - - - - - - - C+语言本书采用了各种教学技巧,以提高读者的学习效率:
4、兼顾基本c 语言知识和C+特性; 就何时以及为何使用特性提供了概念性指南; 强调实践,通过简短、易于输入的范例每次阐述一两个概念; 包含几百个范例程序; 通过示意图、注意、提示等来组织和区分相关的概念; 提供了复习题和编程练习,让读者能够测试自己对所学知识的理解程度; 以极大的灵活性实际使用通用c+ 不要求读者使用特定的计算机、操作系统或编译器; 以 ISO ANSI 标准为基础,对模板、标准模板库、字符串类、异常、RTTI 和名称空间进行了讨论。译者介绍: Stephen Prata在加州肯特菲尔得的马林学院教授天文、物理和计算机科学。他毕业于加州理工学院,在加州大学伯克利分校获得博士学位。
5、Stephen 本人或与他人合作编写的图书有十多本。他撰写的The Waite Groups New C Primer Plus一书获得了计算机出版联合会1990 年度最佳 “How -to ”计算机图书奖;他撰写的The Waite Groups C+ Primer Plus一书获得了计算机出版联合会1991 年度最佳 “How -to”计算机图书奖的提名。前言学习 C+是一次探索之旅,因为这种语言容纳了好几种编程模式,其中包括面向对象编程、通用编程和传统的过程化编程。随着新特性的不断添加,C+一度成为一个活动目标,不过现在有了2003 年的 ISOANSIC+ 标准第二版后,已经稳定下来了
6、。现代编译器支持该标准要求的多数或全部特性,程序员要花时间来习惯这些特性的应用。本书第五版是按ISO ANSI 标准编写的,将介绍这种成熟的C+ 版本。本书在介绍 C+ 特性的同时,讨论了基本C 语言,使二者成为有机的整体。书中介绍了C+ 的基本概念,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 35 页 - - - - - - - - - C+语言并通过短小精悍的程序来阐明,这些程序都很容易复制和试验。还介绍了输入和输出、如何让程序执行重复性任务、如何让程序做出选择、
7、处理数据的多种方式以及如何使用函数等内容。另外,还讲述了C+在C 语言的基础上新增的许多特性,其中包括: 类和对象。 继承。 多态、虚函数和RTTI( 运行阶段类型识别)。 函数重载。 引用变量。 通用 (或独立于类型的)编程,这种技术是由模板和标准模板库(STL)提供的。 处理错误条件的异常机制。 管理函数、类和变量名的名称空间。本书在传授知识方面有几个优点。大约20 年前,C Primer Plus) 一书开创了优良的初级教程传统,本书建立在这样的基础之上,吸收了其中很多成功的理念: 初级教程应当是友好的、便于使用的指南。 初级教程不要求读者已经熟悉相关的编程概念。 初级教程强调的是“ 实
8、践性 ” 学习,通过简短、容易输入的范例同时阐述一个或多个概念。 初级教程用示意图来解释概念。 初级教程提供问题和练习来检验读者对知识的理解,从而适于自学或课堂教学。基于上述理念,本书帮助读者理解这种用途广泛的语言,并学习如何使用它。例如: 对何时使用某些特性,例如何时使用公共继承来建立is-a 关系,提供了概念方面的指导。 阐释了常用的C 抖编程理念和技术。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 35 页 - - - - - - - - - C+语言 提供了大量
9、的附注,如提示、警告、注意等。. 本书的作者和编辑尽最大的努力使本书简单、明了、生动有趣。我们的目标是,读者阅读本书后,能够编写出可靠、高效的程序,并且觉得这是一种享受。本书包含大量的范例代码,其中大部分是完整的程序。和前一版一样,本书介绍的是通用C+,因此适用于任何计算机、操作系统和编译器。书中的范例在Windows XP系统、 Macintosh OS X系统和 Linux 系统上进行了测试。只有为数不多的几个程序会受编译器不兼容问题的影响。本书前一版面世后,编译器在遵循C+标准方面更严格。对于本书中完整的程序,其源代码可从Sams 网站 (wwwsamspublishingcom) 下载
10、得到。为此,可输入本书的英文书名,然后单击Search ,再单击该书名,切换到能够下载源代码的网页。在该网站,也可找到有些编程练习的解决方案。本书分为 17 章和 10 个附录。第 1 章:预备知识本章介绍了 Bjarne Stroustrup如何在 C 语言的基础上添加对面向对象编程的支持,来创造 C+编程语言的。讨论了过程化语言(如 C 语言 )与面向对象语言 (如 C 抖)之间的区别。读者将了解ANSI ISO 在制定 C 抖标准方面所做的工作。本章还讨论了创建C 抖程序的技巧,介绍了当前几种C+编译器使用的方法。最后,本章介绍了本书的一些约定。第 2 章:开始学习C+ 本章介绍创建简单
11、C 抖程序的步骤。 读者可以学习到main() 函数扮演的角色以及C+程序使用的一些语句。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 35 页 - - - - - - - - - C+语言读者将使用预定义的cout 和 cin 对象来实现程序输出和输入,学习如何创建和使用变量。最后,本章还将介绍函数 C+ 的编程模块。第 3 章:处理数据C+提供了内置类型来存储两种数据:整数(没有小数的数字 )和浮点数 (带小数的数字 )。为满足程序员的各种需求, C+为每一种数据都
12、提供了几种类型。本章将要讨论这些类型,包括创建变量和编写各种类型的常量。另外,还将讨论C 抖是如何处理不同类型之间的隐式和显式转换的。第 4 章:复合类型C+允许程序员使用基本的内置类型来创建更复杂的类型。最高级的形式是类,这将在第913 章讨论。本章讨论其他形式,包括数组(存储多个同类型的值)、结构 (存储多个不同类型的值)、指针 (标识内存位置 ) 。读者还将学习如何创建和存储文本字符串及如何使用C风格字符数组和C 抖 string 类来处理文本输入和输出。最后,还将学习C+ 处理内存分配的一些方法,其中包括用于显式地管理内存的new 和 delete 操作符。第 5 章:循环和关系表达式
13、程序经常需要执行重复性操作,为此C+ 提供了 3 种循环结构: for 循环、 while 循环和 dowhile 循环。这些循环必须知道何时终止,C+的关系操作符使程序员能够创建测试来引导循环。本章还将介绍如何创建逐字符地读取和处理输入的循环。最后,读者将学习如何创建二维数组以及如何使用嵌套循环来处理它们。第 6 章:分支语句和逻辑操作符名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 35 页 - - - - - - - - - C+语言如果程序可以根据实际情况调整执行
14、,我们就说程序能够智能地行动。在本章,读者将了解到如何使用if 、if else 和 switch 语句及条件操作符来控制程序流程,学习如何使用逻辑操作符来表达决策测试。另外,本章还将介绍确定字符关系(如测试字符是数字还是非打印字符)的函数库cctype 。最后,还将简要地介绍文件输入输出。第 7 章:函数 C+ 的编程模块函数是 C+ 的基本编程部件。本章重点介绍C+函数与 C 函数共同的特性。 具体地说, 读者将复习函数定义的通用格式,了解函数原型是如何提高程序可靠性的。同时,还将学习如何编写函数来处理数组、字符串和结构。还要学习有关递归的知识(即函数在什么情况下调用自身)以及如何用它来实
15、现分而治之的策略。最后将介绍函数指针,它使程序员能够通过函数参数来命令函数使用另一个函数。第 8 章:函数探幽本章将探索 C+ 中函数新增的特性。读者将学习内联函数,它可以提高程序的执行速度,但会增加程序的长度;还将使用引用变量,它们提供了另一种将信息传递给函数的方式。默认参数使函数能够自动为函数调用中省略的函数参数提供值。函数重载使程序员能够创建多个参数列表不同的同名函数。类设计中经常使用这些特性。另外,读者还将学习函数模板,它们使程序员能够指定相关函数族的设计。第 9 章:内存模型和名称空间本章讨论如何创建多文件程序,介绍分配内存的各种方式、管理内存的各种方式以及作用域、链接、名称空间,这
16、些内容决定了变量在程序的哪些部分是可见的。第 10 章:对象和类类是用户定义的类型,对象(如变量 )是类的实例。本章介绍面向对象编程和类设计。对象声明描述的是存储在对象中的信息以及可对对象执行的操作(类方法 )。对象的某些组成部分对于外界来说是可见的(公有部名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 35 页 - - - - - - - - - C+语言分),而某些部分却是隐藏的(私有部分 )。特殊的类方法(构造函数和析构函数)在对象创建和释放时发挥作用。在本章中,读
17、者将学习所有这些内容以及其他类知识,了解如何使用类来实现ADT ,如堆栈。第 11 章:使用类在本章中,读者将深入了解类。首先了解操作符重载,它使程序员能够定义与类对象一起使用的操作符,如+。还将学习友元函数,这些函数可以访问外部世界不可访问的类数据。同时还将了解一些构造函数和重载操作符成员函数是如何被用来管理类的类型转换的。第 12 章:类和动态内存分配一般来说,让类成员指向动态分配的内存很有用。如果程序员在类构造函数中使用new 来分配动态内存,就有责任提供适当的析构函数,定义显式复制构造函数和显式赋值操作符。本章介绍了在程序员没有提供显式定义时,将如何隐式地生成成员函数以及这些成员函数的
18、行为。读者还将通过使用对象指针,了解队列模拟问题,扩充类方面的知识。第 13 章:类继承在面向对象编程中,继承是功能最强大的特性之一,通过继承,派生类可以继承基类的特性,可重用基类代码。本章讨论公有继承,这种继承模拟了is-a 关系,即派生对象是基对象的特例。例如,物理学家是科学家的特例。有些继承关系是多态的,这意味着相同的方法名称可能导致依赖于对象类型的行为。要实现这种行为,需要使用一种新的成员函数 虚函数。有时,使用抽象基类是实现继承关系的最佳方式。本章讨论了这些问题,说明了公有继承在什么情况下合适,在什么情况下不合适。第 14 章: C+ 中的代码重用公有继承只是代码重用的方式之一。本章
19、将介绍其他几种方式。如果一个类包含了另一个类的对象,则称为包含。包含可以用来模拟has-a 关系,其中一个类包含另一个类的对象。例如,汽车有马达。也可以使用名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 35 页 - - - - - - - - - C+语言私有继承和保护继承来模拟这种关系。本章说明了各种方法之间的区别。同时,读者还将学习类模板,它使程序员能够使用通用类型来定义类,然后使用模板来根据具体类型创建特定的类。例如,堆栈模板使程序员能够创建整数堆栈或字符串堆栈。
20、最后,本章还将介绍多重公有继承,使用这种方式,一个类可以从多个类派生而来。第 15 章:友元、异常和其他本章扩展了对友元的讨论,讨论了友元类和友元成员函数。然后从异常开始介绍了C+ 的几项新特性。异常为处理程序异常提供了一种机制,如函数参数值不正确或内存耗尽等。读者还将学习RTTI ,这种机制用来确定对象类型。最后,本章还将介绍一种更安全的方法来替代不受限制的强制类型转换。第 16 章: string 类和标准模板库本章将讨论 C+ 语言中新增的一些类库。对于传统的C-风格字符串来说,string 类是一种方便且功能强大的替代方式。 autoptr 类帮助管理动态分配的内存。STL 提供了几种
21、类容器(包括数组、队列、链表、集合和映射)的模板表示。它还提供了高效的通用算法库,这些算法可用于STL 容器,也可用于常规数组。模板类valarray 为数值数组提供了支持。第 17 章:输入、输出和文件本章复习 C+ I O,并讨论如何格式化输出。读者将要学习如何使用类方法来确定输入或输出流的状态,了解输入类型是否不匹配或是否检测到了文件尾。C+使用继承来派生用于管理文件输入和输出的类。读者将学习如何打开文件,以进行输入和输出,如何在文件中追加数据,如何使用二进制文件,如何获得对文件的随机访问权。最后,还将学习如何使用标准的IO 方法来读取和写入字符串。附录 A:计数系统本附录讨论八进制数、
22、十六进制数和二进制数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 35 页 - - - - - - - - - C+语言附录 B:C+ 保留字本附录列出了C+ 关键字。附录 C:ASCII 字符集本附录列出了ASCII 字符集及其十进制、八进制、十六进制和二进制表示。附录 D:操作符优先级本附录按优先级从高到低的顺序列出了C+ 的操作符。附录 E:其他操作符本附录总结了正文中没有介绍的其他C+ 操作符,如按位操作符等。附录 F:ddne 模板类本附录总结了string
23、 类方法和函数。附录 G:STL 方法和函数本附录总结了STL 容器方法和通用的STL 算法函数。附录 H:精选读物和网资源本附录列出一些参考书,帮助读者深入了解C+ 。附录 I:转换为 ANSlISO 标准 C+ 本附录提供了从C 和老式 C+实现到 ANSI ISO C+ 的转换指南。附录 J:复习题答案本附录提供每章结尾的复习题的答案。本书第五版的宗旨之一是:提供一本既可以用作自学书也可以用作教材的书籍。下面是本书在支持教学方面的一些特征: 本书介绍的是通用C+,不依赖于特定的实现。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
24、- - 名师精心整理 - - - - - - - 第 9 页,共 35 页 - - - - - - - - - C+语言 本书内容记录了ISO ANSI C+ 标准委员会的工作,并讨论了模板、STL 、string 类、异常、 RTTI 和名称空间。 本书不要求学生了解C 语言,但如果有一定的编程经验则更好。 本书内容经过了精心安排,前几章可以作为对C 预备知识的复习章节一带而过。 各章都有复习题和编程练习。附录J 提供了复习题的答案;有些编程练习的解决方案可在Sams 网站(www samspublishingcom) 上找到。 本书介绍的一些主题很适于计算机科学课程,包括抽象数据类型(AD
25、T)、堆栈、队列、简单链表、模拟、通用编程以及使用递归来实现分而治之的策略。 各章都非常简短,用一周甚至更短的时间就可以学完。 本书讨论了何时使用具体的特性以及如何使用它们。例如,把is-a 关系的公有继承同组合、has-a 关系的私有继承联系起来,讨论了何时应使用虚函数以及何时不应使用。本书约定为区别不同类型的文本,我们使用了一些印刷上的约定。 代码行、命令、语句、变量、文件名和程序输出使用couriernew字体:#includeiostream int main() using namespace std;cout return 0 ;名师资料总结 - - -精品资料欢迎下载 - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+语言简介 2022 c+ 语言 简介
限制150内