C++程序设计(第3版) / 中国高等院校计算机基础教育课程体系规划教材
¥49.50定价
作者: 谭浩强
出版时间:2015年8月
出版社:清华大学出版社
- 清华大学出版社
- 9787302408307
- 3-1
- 120756
- 16开
- 2015年8月
- 工学
- 软件工程
- TP312C
- 计算机
- 本专科、高职高专
内容简介
C 是近年来国内外广泛使用的现代计算机语言,它既支持基于过程的程序设计,也支持面向对象的程序设计。国内许多高校陆续开设了C 程序设计课程。但是,由于C 涉及概念很多,语法比较复杂,内容十分广泛,使不少人感到学习难度较大,难以入门。
本书作者深入调查了大学的程序设计课程的现状和发展趋势,参阅了国内外数十种有关C 的教材,认真分析了读者在学习中的困难和认识规律,设计了读者易于学习的教材体系,于2004年出版了《C 程序设计》一书。该书降低入门起点,不需要C语言的基础,从零起点介绍程序设计和C 。广大师生用后反映非常好,认为该书定位准确,概念清晰,深入浅出,取舍合理,以通俗易懂的语言对C 的许多难懂的概念作了透彻而通俗的说明,大大降低了初学者学习的困难,是初学者学习C 的一本好教材。
根据教学实践的需要,作者在2011年对该书进行了修订,出版了《C 程序设计(第2版)》,现在又进行了一次修订,出版了《C 程序设计(第3版)》,内容更加丰富,讲解更加清晰,学习更加容易,依据ANSI C 标准进行介绍,引导读者从一开始就按C 的要求编程,而不是过多地迁就C语言的习惯。全书分为4篇: 基本知识、基于过程的程序设计、基于对象的程序设计和面向对象的程序设计。
为了便于教学,本书有《C 程序设计题解和上机指导(第3版)》和《C 程序设计实践指导》两本配套教材,旨在帮助学生通过实践掌握C 的编程方法。
本书内容全面,例题丰富,概念清晰,循序渐进,易于学习,即使没有教师讲授,读者也能看懂本书的大部分内容。本书是学习C 的入门教材,可供各类专业学生使用,也可作为计算机培训班的教材以及读者自学参考。
本书作者深入调查了大学的程序设计课程的现状和发展趋势,参阅了国内外数十种有关C 的教材,认真分析了读者在学习中的困难和认识规律,设计了读者易于学习的教材体系,于2004年出版了《C 程序设计》一书。该书降低入门起点,不需要C语言的基础,从零起点介绍程序设计和C 。广大师生用后反映非常好,认为该书定位准确,概念清晰,深入浅出,取舍合理,以通俗易懂的语言对C 的许多难懂的概念作了透彻而通俗的说明,大大降低了初学者学习的困难,是初学者学习C 的一本好教材。
根据教学实践的需要,作者在2011年对该书进行了修订,出版了《C 程序设计(第2版)》,现在又进行了一次修订,出版了《C 程序设计(第3版)》,内容更加丰富,讲解更加清晰,学习更加容易,依据ANSI C 标准进行介绍,引导读者从一开始就按C 的要求编程,而不是过多地迁就C语言的习惯。全书分为4篇: 基本知识、基于过程的程序设计、基于对象的程序设计和面向对象的程序设计。
为了便于教学,本书有《C 程序设计题解和上机指导(第3版)》和《C 程序设计实践指导》两本配套教材,旨在帮助学生通过实践掌握C 的编程方法。
本书内容全面,例题丰富,概念清晰,循序渐进,易于学习,即使没有教师讲授,读者也能看懂本书的大部分内容。本书是学习C 的入门教材,可供各类专业学生使用,也可作为计算机培训班的教材以及读者自学参考。
目录
第1篇基 本 知 识
第1章C 的初步知识3
1.1从C到C 3
1.2最简单的C 程序5
1.3C 程序的构成和书写形式12
1.4C 程序的编写和实现13
1.5关于C 上机实践15
习题15
第2章数据的存储、表示形式和基本运算18
2.1C 的数据类型18
2.2常量20
2.2.1什么是常量20
2.2.2数值常量20
2.2.3字符常量22
2.2.4符号常量25
2.3变量26
2.3.1什么是变量26
2.3.2变量名规则26
2.3.3定义变量27
2.3.4对变量赋初值28
2.3.5常变量28
2.4C 的运算符29
2.5算术运算符与算术表达式30
2.5.1基本的算术运算符30
2.5.2算术表达式和运算符的优先级与结合性30
2.5.3表达式中各类数值型数据间的混合运算30
2.5.4自增( )和自减(--)运算符31
2.5.5强制类型转换运算符32
2.6赋值运算符和赋值表达式33
2.6.1赋值运算符33
2.6.2赋值过程中的类型转换33
2.6.3复合赋值运算符35
2.6.4赋值表达式35
2.7逗号运算符和逗号表达式36
习题37
第2篇基于过程的程序设计
第3章程序设计初步41
3.1基于过程的程序设计和算法41
3.1.1算法的概念41
3.1.2算法的表示42
3.2C 的程序结构和C 语句43
3.3赋值操作46
3.4C 的输入与输出46
3.4.1输入流与输出流的基本操作47
3.4.2在标准输入流与输出流中使用控制符49
3.4.3用getchar和putchar 函数进行字符的输入和输出52
3.4.4用scanf和printf函数进行输入和输出53
3.5编写顺序结构的程序54
3.6关系运算和逻辑运算55
3.6.1关系运算和关系表达式55
3.6.2逻辑常量和逻辑变量57
3.6.3逻辑运算和逻辑表达式58
3.7选择结构和if语句60
3.7.1if语句的形式60
3.7.2if语句的嵌套63
3.7.3条件运算符和条件表达式64
3.7.4多分支选择结构与switch 语句65
3.7.5编写选择结构的程序67
3.8循环结构和循环语句69
3.8.1用while语句构成循环70
3.8.2用dowhile语句构成循环71
3.8.3用for语句构成循环72
3.8.4循环的嵌套74
3.8.5提前结束循环(break语句和continue语句)74
3.8.6编写循环结构的程序75
习题80
第4章利用函数实现指定的功能83
4.1什么是函数83
4.1.1为什么需要函数83
4.1.2函数调用举例84
4.1.3函数的分类85
4.2定义函数的一般形式85
4.2.1定义无参函数的一般形式85
4.2.2定义有参函数的一般形式86
4.3函数参数和函数的值86
4.3.1形式参数和实际参数86
4.3.2函数的返回值88
4.4函数的调用89
4.4.1函数调用的一般形式89
4.4.2函数调用的方式89
4.4.3对被调用函数的声明和函数原型90
4.5函数的嵌套调用92
4.6函数的递归调用95
4.7内置函数98
4.8函数的重载100
4.9函数模板102
4.10有默认参数的函数104
4.11局部变量和全局变量106
4.11.1局部变量106
4.11.2全局变量107
4.12变量的存储类别109
4.12.1动态存储方式与静态存储方式109
4.12.2自动变量110
4.12.3用static声明静态局部变量110
4.12.4用register声明寄存器变量113
4.12.5用extern声明外部变量113
4.12.6用static声明静态外部变量115
4.13变量属性小结115
4.14关于变量的声明和定义118
4.15内部函数和外部函数119
4.15.1内部函数119
4.15.2外部函数119
4.16头文件121
4.16.1头文件的内容121
4.16.2关于C 标准库和头文件的形式121
习题122
第5章利用数组处理批量数据124
5.1为什么需要用数组124
5.2定义和引用一维数组125
5.2.1定义一维数组125
5.2.2引用一维数组的元素125
5.2.3一维数组的初始化126
5.2.4一维数组程序举例126
5.3定义和引用二维数组128
5.3.1定义二维数组129
5.3.2引用二维数组的元素130
5.3.3二维数组的初始化130
5.3.4二维数组程序举例131
5.4用数组作函数参数133
5.5字符数组137
5.5.1定义和初始化字符数组137
5.5.2字符数组的赋值与引用138
5.5.3字符串和字符串结束标志139
5.5.4字符数组的输入输出140
5.5.5使用字符串处理函数对字符串进行操作141
5.5.6字符数组应用举例144
5.6C 处理字符串的方法——字符串类与字符串变量145
5.6.1字符串变量的定义和引用146
5.6.2字符串变量的运算147
5.6.3字符串数组147
5.6.4字符串运算举例148
习题151
第6章善于使用指针与引用153
6.1什么是指针153
6.2变量与指针155
6.2.1定义指针变量155
6.2.2引用指针变量157
6.2.3用指针作函数参数159
6.3数组与指针164
6.3.1指向数组元素的指针164
6.3.2用指针变量作函数形参接收数组地址166
6.4字符串与指针169
6.5函数与指针171
6.6返回指针值的函数172
6.7指针数组和指向指针的指针 173
6.7.1指针数组173
6.7.2指向指针的指针175
6.8const指针177
6.9void指针类型179
6.10有关指针的数据类型和指针运算的小结180
6.10.1有关指针的数据类型的小结180
6.10.2指针运算小结180
6.11引用182
6.11.1什么是变量的引用182
6.11.2引用的简单使用183
6.11.3引用作为函数参数184
习题188
第7章用户自定义数据类型190
7.1结构体类型190
7.1.1为什么需要用结构体类型190
7.1.2结构体类型变量的定义方法及其初始化191
7.1.3引用结构体变量193
7.1.4结构体数组195
7.1.5指向结构体变量的指针197
7.1.6结构体类型数据作为函数参数200
7.1.7用new和delete运算符进行动态分配和撤销存储空间203
7.2枚举类型205
7.3用typedef声明新的类型名208
习题211
第3篇基于对象的程序设计
第8章类和对象的特性215
8.1面向对象程序设计方法概述215
8.1.1什么是面向对象的程序设计215
8.1.2面向对象程序设计的特点219
8.1.3类和对象的作用220
8.1.4面向对象的软件开发221
8.2类的声明和对象的定义222
8.2.1类和对象的关系222
8.2.2声明类类型222
8.2.3定义对象的方法225
8.3类的成员函数226
8.3.1成员函数的性质226
8.3.2在类外定义成员函数227
8.3.3内置成员函数228
8.3.4成员函数的存储方式229
8.4对象成员的引用231
8.4.1通过对象名和成员运算符访问对象中的成员231
8.4.2通过指向对象的指针访问对象中的成员232
8.4.3通过对象的引用来访问对象中的成员232
8.5类的封装性和信息隐蔽232
8.5.1公用接口与私有实现的分离232
8.5.2类声明和成员函数定义的分离234
8.5.3面向对象程序设计中的几个名词235
8.6类和对象的简单应用举例236
习题243
第9章怎样使用类和对象245
9.1利用构造函数对类对象进行初始化245
9.1.1对象的初始化245
9.1.2用构造函数实现数据成员的初始化246
9.1.3带参数的构造函数248
9.1.4用参数初始化表对数据成员初始化250
9.1.5构造函数的重载251
9.1.6使用默认参数的构造函数252
9.2析构函数255
9.3调用构造函数和析构函数的顺序257
9.4对象数组259
9.5对象指针261
9.5.1指向对象的指针261
9.5.2指向对象成员的指针262
9.5.3this指针265
9.6共用数据的保护266
9.6.1常对象266
9.6.2常对象成员268
9.6.3指向对象的常指针269
9.6.4指向常对象的指针变量270
9.6.5对象的常引用273
9.6.6const型数据的小结274
9.7对象的动态建立和释放274
9.8对象的赋值和复制275
9.8.1对象的赋值275
9.8.2对象的复制277
9.9静态成员279
9.9.1静态数据成员280
9.9.2静态成员函数282
9.10友元285
9.10.1友元函数285
9.10.2友元类289
9.11类模板290
习题294
第10章运算符重载297
10.1什么是运算符重载297
10.2运算符重载的方法299
10.3重载运算符的规则302
10.4运算符重载函数作为类成员函数和友元函数303
10.5重载双目运算符307
10.6重载单目运算符311
10.7重载流插入运算符“<>”314
10.7.1重载流插入运算符“<
10.7.2重载流提取运算符“>>”316
10.8有关运算符重载的归纳 318
10.9不同类型数据间的转换319
10.9.1标准类型数据间的转换319
10.9.2用转换构造函数进行不同类型数据的转换320
10.9.3类型转换函数321
习题327
第4篇面向对象的程序设计
第11章继承与派生331
11.1继承与派生的概念331
11.2派生类的声明方式334
11.3派生类的构成334
11.4派生类成员的访问属性336
11.4.1公用继承337
11.4.2私有继承339
11.4.3保护成员和保护继承342
11.4.4多级派生时的访问属性346
11.5派生类的构造函数和析构函数347
11.5.1简单的派生类的构造函数347
11.5.2有子对象的派生类的构造函数351
11.5.3多层派生时的构造函数354
11.5.4派生类构造函数的特殊形式356
11.5.5派生类的析构函数356
11.6多重继承357
11.6.1声明多重继承的方法357
11.6.2多重继承派生类的构造函数357
11.6.3多重继承引起的二义性问题360
11.6.4虚基类363
11.7基类与派生类的转换368
11.8继承与组合371
11.9继承在软件开发中的重要意义373
习题374
第12章多态性与虚函数379
12.1多态性的概念379
12.2一个典型的例子380
12.3利用虚函数实现动态多态性385
12.3.1虚函数的作用385
12.3.2静态关联与动态关联389
12.3.3在什么情况下应当声明虚函数391
12.3.4虚析构函数391
12.4纯虚函数与抽象类393
12.4.1纯虚函数393
12.4.2抽象类393
12.4.3应用实例394
习题400
第13章输入输出流401
13.1C 的输入和输出401
13.1.1输入输出的含义401
13.1.2C 的I/O对C的发展——类型安全和可扩展性401
13.1.3C 的输入输出流402
13.2标准输出流407
13.2.1cout,cerr和clog流407
13.2.2标准类型数据的格式输出409
13.2.3用流成员函数put输出字符412
13.3标准输入流414
13.3.1cin流414
13.3.2用于字符输入的流成员函数414
13.3.3istream类的其他成员函数416
13.4对数据文件的操作与文件流419
13.4.1文件的概念419
13.4.2文件流类与文件流对象420
13.4.3文件的打开与关闭421
13.4.4对ASCII文件的操作423
13.4.5对二进制文件的操作428
13.5字符串流433
习题438
第14章C 工具440
14.1异常处理440
14.1.1异常处理的任务440
14.1.2异常处理的方法441
14.1.3在函数声明中进行异常情况指定448
14.1.4在异常处理中处理析构函数448
14.2命名空间450
14.2.1为什么需要命名空间451
14.2.2什么是命名空间454
14.2.3使用命名空间解决名字冲突456
14.2.4使用命名空间成员的方法458
14.2.5无名的命名空间460
14.2.6标准命名空间std460
14.3使用早期的函数库461
习题462
参考文献4671.4C 程序的编写和实现13
1.5关于C 上机实践15
习题15
第2章数据的存储、表示形式和基本运算19
2.1C 的数据类型19
2.2常量21
2.2.1什么是常量21
2.2.2数值常量21
2.2.3字符常量23
2.2.4符号常量26
2.3变量27
2.3.1什么是变量27
2.3.2变量名规则27
2.3.3定义变量28
2.3.4对变量赋初值29
2.3.5常变量29
2.4C 的运算符30
2.5算术运算符与算术表达式31
2.5.1基本的算术运算符31
2.5.2算术表达式和运算符的优先级与结合性31
2.5.3表达式中各类数值型数据间的混合运算32
2.5.4自增( )和自减(--)运算符32
2.5.5强制类型转换运算符33
2.6赋值运算符和赋值表达式34
2.6.1赋值运算符34
2.6.2赋值过程中的类型转换34
2.6.3复合赋值运算符36
2.6.4赋值表达式37
2.7逗号运算符和逗号表达式38
习题38
第2篇基于过程的程序设计
第3章程序设计初步43
3.1基于过程的程序设计和算法43
3.1.1算法的概念43
3.1.2算法的表示44
3.2C 的程序结构和C 语句45
3.3赋值操作48
3.4C 的输入与输出48
3.4.1输入流与输出流的基本操作49
3.4.2在标准输入流与输出流中使用控制符52
3.4.3用getchar和putchar 函数进行字符的输入和输出54
3.4.4用scanf和printf函数进行输入和输出56
3.5编写顺序结构的程序57
3.6关系运算和逻辑运算57
3.6.1关系运算和关系表达式58
3.6.2逻辑常量和逻辑变量59
3.6.3逻辑运算和逻辑表达式60
3.7选择结构和if语句62
3.7.1if语句的形式62
3.7.2if语句的嵌套65
3.7.3条件运算符和条件表达式66
3.7.4多分支选择结构与switch 语句67
3.7.5编写选择结构的程序69
3.8循环结构和循环语句72
3.8.1用while语句构成循环72
3.8.2用dowhile语句构成循环73
3.8.3用for语句构成循环74
3.8.4循环的嵌套76
3.8.5提前结束循环(break语句和continue语句)77
3.8.6编写循环结构的程序78
习题82
第4章利用函数实现指定的功能85
4.1什么是函数85
4.1.1为什么需要函数85
4.1.2函数调用举例86
4.1.3函数的分类87
4.2定义函数的一般形式87
4.2.1定义无参函数的一般形式87
4.2.2定义有参函数的一般形式88
4.3函数参数和函数的值88
4.3.1形式参数和实际参数88
4.3.2函数的返回值90
4.4函数的调用91
4.4.1函数调用的一般形式91
4.4.2函数调用的方式91
4.4.3对被调用函数的声明和函数原型92
4.5函数的嵌套调用94
4.6函数的递归调用97
4.7内置函数100
4.8函数的重载102
4.9函数模板104
4.10有默认参数的函数106
4.11局部变量和全局变量108
4.11.1局部变量109
4.11.2全局变量110
4.12变量的存储类别111
4.12.1动态存储方式与静态存储方式111
4.12.2自动变量112
4.12.3用static声明静态局部变量113
4.12.4用register声明寄存器变量115
4.12.5用extern声明外部变量115
4.12.6用static声明静态外部变量117
4.13变量属性小结118
4.14关于变量的声明和定义120
4.15内部函数和外部函数121
4.15.1内部函数121
4.15.2外部函数121
4.16头文件123
4.16.1头文件的内容123
4.16.2关于C 标准库和头文件的形式124
习题124
第5章利用数组处理批量数据126
5.1为什么需要用数组126
5.2定义和引用一维数组127
5.2.1定义一维数组127
5.2.2引用一维数组的元素127
5.2.3一维数组的初始化128
5.2.4一维数组程序举例128
5.3定义和引用二维数组131
5.3.1定义二维数组131
5.3.2引用二维数组的元素132
5.3.3二维数组的初始化132
5.3.4二维数组程序举例133
5.4用数组作函数参数135
5.5字符数组139
5.5.1定义和初始化字符数组140
5.5.2字符数组的赋值与引用140
5.5.3字符串和字符串结束标志141
5.5.4字符数组的输入输出143
5.5.5使用字符串处理函数对字符串进行操作144
5.5.6字符数组应用举例146
5.6C 处理字符串的方法——字符串类与字符串变量147
5.6.1字符串变量的定义和引用148
5.6.2字符串变量的运算149
5.6.3字符串数组149
5.6.4字符串运算举例150
习题153
第6章善于使用指针与引用155
6.1什么是指针155
6.2变量与指针157
6.2.1定义指针变量157
6.2.2引用指针变量159
6.2.3用指针作函数参数161
6.3数组与指针166
6.3.1指向数组元素的指针166
6.3.2用指针变量作函数形参接收数组地址168
6.4字符串与指针171
6.5函数与指针173
6.6返回指针值的函数175
6.7指针数组和指向指针的指针 175
6.7.1指针数组175
*6.7.2指向指针的指针177
*6.8const指针178
*6.9void指针类型181
6.10有关指针的数据类型和指针运算的小结182
6.10.1有关指针的数据类型的小结182
6.10.2指针运算小结183
*6.11引用184
6.11.1什么是变量的引用184
6.11.2引用的简单使用186
6.11.3引用作为函数参数186
习题190
第7章用户自定义数据类型192
7.1结构体类型192
7.1.1为什么需要用结构体类型192
7.1.2结构体类型变量的定义方法及其初始化193
7.1.3引用结构体变量195
7.1.4结构体数组197
7.1.5指向结构体变量的指针199
7.1.6结构体类型数据作为函数参数202
*7.1.7用new和delete运算符进行动态分配和撤销存储空间205
7.2枚举类型207
7.3用typedef声明新的类型名210
习题213
第3篇基于对象的程序设计
第8章类和对象的特性217
8.1面向对象程序设计方法概述217
8.1.1什么是面向对象的程序设计217
8.1.2面向对象程序设计的特点221
8.1.3类和对象的作用222
8.1.4面向对象的软件开发223
8.2类的声明和对象的定义224
8.2.1类和对象的关系224
8.2.2声明类类型224
8.2.3定义对象的方法227
8.3类的成员函数228
8.3.1成员函数的性质228
8.3.2在类外定义成员函数229
8.3.3内置成员函数230
8.3.4成员函数的存储方式231
8.4对象成员的引用233
8.4.1通过对象名和成员运算符访问对象中的成员233
8.4.2通过指向对象的指针访问对象中的成员234
8.4.3通过对象的引用来访问对象中的成员234
8.5类的封装性和信息隐蔽234
8.5.1公用接口与私有实现的分离234
8.5.2类声明和成员函数定义的分离236
8.5.3面向对象程序设计中的几个名词237
8.6类和对象的简单应用举例238
习题245
第9章怎样使用类和对象247
9.1利用构造函数对类对象进行初始化247
9.1.1对象的初始化247
9.1.2用构造函数实现数据成员的初始化248
9.1.3带参数的构造函数250
9.1.4用参数初始化表对数据成员初始化252
9.1.5构造函数的重载253
9.1.6使用默认参数的构造函数255
9.2析构函数258
9.3调用构造函数和析构函数的顺序260
9.4对象数组262
9.5对象指针264
9.5.1指向对象的指针264
9.5.2指向对象成员的指针264
9.5.3this指针267
9.6共用数据的保护269
9.6.1常对象269
9.6.2常对象成员270
9.6.3指向对象的常指针272
9.6.4指向常对象的指针变量272
9.6.5对象的常引用275
9.6.6const型数据的小结276
9.7对象的动态建立和释放277
9.8对象的赋值和复制278
9.8.1对象的赋值278
9.8.2对象的复制279
9.9静态成员282
9.9.1静态数据成员283
9.9.2静态成员函数285
9.10友元288
9.10.1友元函数288
9.10.2友元类292
9.11类模板293
习题297
第10章运算符重载301
10.1什么是运算符重载301
10.2运算符重载的方法303
10.3重载运算符的规则306
10.4运算符重载函数作为类成员函数和友元函数307
10.5重载双目运算符311
10.6重载单目运算符315
10.7重载流插入运算符“<>”318
10.7.1重载流插入运算符“<
10.7.2重载流提取运算符“>>”321
10.8有关运算符重载的归纳 322
10.9不同类型数据间的转换323
10.9.1标准类型数据间的转换323
10.9.2用转换构造函数进行不同类型数据的转换324
10.9.3类型转换函数326
习题331
第4篇面向对象的程序设计
第11章继承与派生335
11.1继承与派生的概念335
11.2派生类的声明方式338
11.3派生类的构成338
11.4派生类成员的访问属性340
11.4.1公用继承341
11.4.2私有继承343
11.4.3保护成员和保护继承346
11.4.4多级派生时的访问属性350
11.5派生类的构造函数和析构函数351
11.5.1简单的派生类的构造函数351
11.5.2有子对象的派生类的构造函数355
11.5.3多层派生时的构造函数358
11.5.4派生类构造函数的特殊形式360
11.5.5派生类的析构函数361
11.6多重继承361
11.6.1声明多重继承的方法361
11.6.2多重继承派生类的构造函数361
11.6.3多重继承引起的二义性问题364
11.6.4虚基类368
11.7基类与派生类的转换372
11.8继承与组合376
11.9继承在软件开发中的重要意义377
习题379
第12章多态性与虚函数384
12.1多态性的概念384
12.2一个典型的例子385
12.3利用虚函数实现动态多态性390
12.3.1虚函数的作用390
12.3.2静态关联与动态关联394
12.3.3在什么情况下应当声明虚函数396
12.3.4虚析构函数396
12.4纯虚函数与抽象类398
12.4.1纯虚函数398
12.4.2抽象类398
12.4.3应用实例399
习题405
第13章输入输出流407
13.1C 的输入和输出407
13.1.1输入输出的含义407
13.1.2C 的I/O对C的发展——类型安全和可扩展性407
13.1.3C 的输入输出流408
13.2标准输出流413
13.2.1cout,cerr和clog流413
13.2.2标准类型数据的格式输出415
13.2.3用流成员函数put输出字符418
13.3标准输入流420
13.3.1cin流420
13.3.2用于字符输入的流成员函数420
13.3.3istream类的其他成员函数422
13.4对数据文件的操作与文件流425
13.4.1文件的概念425
13.4.2文件流类与文件流对象426
13.4.3文件的打开与关闭427
13.4.4对ASCII文件的操作429
13.4.5对二进制文件的操作434
13.5字符串流440
习题444
第14章C 工具446
14.1异常处理446
14.1.1异常处理的任务446
14.1.2异常处理的方法447
14.1.3在函数声明中进行异常情况指定454
14.1.4在异常处理中处理析构函数454
14.2命名空间457
14.2.1为什么需要命名空间457
14.2.2什么是命名空间460
14.2.3使用命名空间解决名字冲突462
14.2.4使用命名空间成员的方法464
14.2.5无名的命名空间466
14.2.6标准命名空间std466
14.3使用早期的函数库467
习题468
参考文献473