标题：c++程序设计
基本信息
书　名　C++程序设计(工业和信息化普通高等教育“十二五”规划教材立项项目)
丛 书 名　21世纪高等学校计算机规划教材——高校系列
标准书号　ISBN 978-7-115-24852-7[1]
编目分类　TP312
作　者　姚琳 主编
译　者　--  
责任编辑　武恩玉
开　本　16 开
印　张　21.5
字　数　564 千字
页　数　334 页
装　帧　平装
版　次　第1版第1次
初版时间　2011年3月
本 印 次　2011年3月
首 印 数　-- 册
定　价　38.00 元
内容提要
本书根据教育部非计算机专业计算机基础课程教学指导分委员会提出的《高等学校非计算机专业计算机基础课程教学基本要求》中的关于“程序设计”的课程教学要求编写。全书以面向对象的编程思想为主线，主要讲解程序设计基础知识、类与对象的基本概念、继承与多态、输入/输出流以及泛型程序设计等内容。
本书可作为高等院校“程序设计”课程的教材使用，也可作为学习程序设计的自学参考书和培训教材。
目录
第1章　程序设计方法和C++语言概述　1
1.1　程序编写过程　1
1.2　面向过程程序设计方法　2
1.3　面向对象程序设计方法　3
1.4　C++语言的发展　5
1.5　C++语言程序的开发过程　7
1.6　一个简单的程序　7
本章小结　10
习题　10
第2章　数据类型、运算符和表达式　11
2.1　数据类型　11
2.2　常量和变量　13
2.2.1　C++的符号系统　13
2.2.2　C++的常量　14
2.2.3　C++的变量　17
2.3　运算符和表达式　18
2.3.1　算术运算符和算术表达式　18
2.3.2　赋值运算符和赋值表达式　20
2.3.3　关系运算符和关系表达式　21
2.3.4　逻辑运算符和逻辑表达式　22
2.3.5　位运算符和位运算表达式　24
2.3.6　条件运算符和条件表达式　27
2.3.7　其他运算符　27
2.4　数据类型转换　29
2.4.1　自动类型转换　29
2.4.2　强制类型转换　30
2.4.3　赋值表达式的类型转换　31
2.5　基本输入/输出　31
2.5.1　标准输入流和标准输出流　31
2.5.2　I/O流的格式控制　32
2.6　C++的语句类型　34
2.6.1　说明性语句　35
2.6.2　可执行语句　35
本章小结　37
习题　38
第3章　C++控制语句　40
3.1　顺序结构程序设计　40
3.2　分支结构程序设计　42
3.2.1　if分支语句　42
3.2.2　if语句的嵌套　48
3.2.3　switch语句　51
3.3　循环结构程序设计　53
3.3.1　while语句　53
3.3.2　do...while语句　55
3.3.3　for语句　58
3.3.4　3种循环语句的比较　61
3.3.5　循环嵌套　62
3.3.6　break和continue语句　63
3.4　程序举例　66
本章小结　68
习题　69
第4章　数组　72
4.1　概述　71
4.2　一维数组　72
4.2.1　一维数组定义和初始化　72
4.2.2　一维数组元素的引用　74
4.3　二维数组　75
4.3.1　二维数组定义和初始化　75
4.3.2　二维数组元素的引用　76
4.4　字符数组与字符串　77
4.4.1　字符数组的定义和初始化　77
4.4.2　字符数组的引用　78
4.5　数组应用举例　80
4.5.1　一维数组应用举例　80
4.5.2　二维数组应用举例　81
4.5.3　字符数组应用举例　83
4.5.4　综合应用举例　84
本章小结　85
习题　85
第5章　函数与预处理　91
5.1　概述　91
5.1.1　函数简介　91
5.1.2　函数的种类　92
5.2　函数定义及调用　93
5.2.1　函数的定义　93
5.2.2　函数的调用　95
5.2.3　函数参数传递与返回值　96
5.2.4　函数的嵌套调用　100
5.2.5　函数原型声明　102
5.3　C++中的特殊函数　103
5.3.1　重载函数　103
5.3.2　内联函数　105
5.3.3　具有默认参数值的函数　106
5.4　函数模板　107
5.4.1　函数模板的定义　107
5.4.2　重载函数模板　108
5.5　局部变量和全局变量　109
5.5.1　局部作用域和局部变量　109
5.5.2　全局作用域和全局变量　111
5.6　变量的生存期和存储类别　113
5.6.1　变量的生存期　113
5.6.2　变量的存储类别　113
5.7　编译预处理　117
5.7.1　宏定义　118
5.7.2　文件包含　120
5.7.3　条件编译　121
本章小结　121
习题　121
第6章　指针和引用　127
6.1　指针的概念　127
6.1.1　指针和指针变量　127
6.1.2　指针变量的定义　127
6.1.3　指针的基本运算　128
6.1.4　指针作为函数参数　132
6.2　指针与数组　135
6.2.1　指针与一维数组　135
6.2.2　指针与二维数组　138
6.2.3　指向字符串的指针变量　140
6.2.4　指针数组　143
6.2.5　多级指针　146
6.3　指针和函数　147
6.3.1　指针型函数　147
6.3.2　用函数指针调用函数　148
6.3.3　用指向函数的指针作函数参数　150
6.3.4　带参数的main()函数　151
6.4　动态存储分配　152
6.4.1　内存的动态分配　152
6.4.2　动态内存分配操作符　153
6.5　引用　154
6.5.1　引用的概念　154
6.5.2　引用的操作　155
6.5.3　不能被定义引用的情况　156
6.5.4　函数参数中引用的传递　157
6.5.5　用引用返回多个值　158
6.5.6　用函数返回引用　159
6.5.7　const引用　159
本章小结　161
习题　162
第7章　其他自定义数据类型　168
7.1　结构体类型　168
7.1.1　结构体类型的定义　168
7.1.2　结构体类型变量的定义及其初始化　169
7.1.3　结构体类型的使用　171
7.2　枚举类型　175
7.3　共用体类型　178
本章小结　180
习题　181
第8章　类与对象　185
8.1　类的概念　185
8.2　类的定义　186
8.3　对象的定义　187
8.4　类的成员函数　188
8.5　类的访问属性　191
8.6　对象的使用　192
8.6.1　对象指针　194
8.6.2　对象引用　194
8.6.3　this指针　194
8.6.4　对象数组　195
8.6.5　普通对象做函数参数　196
8.6.6　对象指针做函数参数　197
8.6.7　对象引用做函数参数　199
8.7　构造函数　201
8.8　析构函数　202
8.9　拷贝构造函数　204
8.10　浅拷贝和深拷贝　205
8.11　静态成员　206
8.11.1　静态成员数据　206
8.11.2　静态成员函数　208
8.12　友元　210
8.12.1　友元函数　210
8.12.2　友元类　211
8.13　常对象　212
8.14　常成员　212
8.14.1　常成员数据　213
8.14.2　常成员函数　213
8.15　组合关系　214
8.16　类模板　216
本章小结　218
习题　218
第9章　继承与派生　223
9.1　继承和派生的概念　223
9.2　继承的实现　224
9.2.1　派生类的定义　224
9.2.2　派生类的构成　226
9.2.3　继承的访问控制　228
9.3　派生类的构造函数和析构函数　230
9.3.1　派生类的构造函数　230
9.3.2　派生类的析构函数　232
9.4　多继承中的二义性与虚函数　233
9.4.1　多继承中的二义性　233
9.4.2　虚基类　235
本章小结　236
习题　237
第10章　多态性与虚函数　242
10.1　多态性　242
10.1.1　多态性的概念　242
10.1.2　多态的实现——联编　243
10.2　继承中的静态联编　243
10.2.1　派生类对象调用同名函数　243
10.2.2　通过基类指针调用同名函数　245
10.3　虚函数和运行时的多态　247
10.3.1　虚函数　247
10.3.2　虚函数的使用　248
10.3.3　虚析构函数　249
10.4　纯虚函数和抽象类　251
10.4.1　纯虚函数　251
10.4.2　抽象类　252
10.4.3　应用实例　252
本章小结　255
习题　255
第11章　运算符重载　260
11.1　运算符重载的概念　260
11.2　运算符重载的规则和语法　261
11.3　“++”、“??”运算符的重载　265
11.4　赋值运算符“=”的重载　268
11.5　插入提取运算符“<<”“>>”的重载　271
11.6　类型转换运算符的重载　272
本章小结　274
习题　274
第12章　标准模板库　275
12.1　标准模板库概述　275
12.2　容器　276
12.2.1　向量　276
12.2.2　列表　279
12.2.3　栈　280
12.2.4　集合　282
12.2.5　映射　284
本章小结　285
习题　285
第13章　输入/输出流　287
13.1　流　287
13.2　文件流　288
13.2.1　数据的层次　288
13.2.2　文件和流　290
13.2.3　文件操作　290
13.3　顺序文件操作　294
13.3.1　建立顺序文件　294
13.3.2　读取顺序访问文件中的数据　297
13.3.3　更新顺序访问文件　298
13.4　随机访问文件　299
13.4.1　建立随机访问文件　299
13.4.2　向随机访问文件中随机地写入数据　301
13.4.3　从随机访问文件中顺序地读取数据　302
本章小结　304
习题　305
第14章　异常处理　308
14.1　程序的出错处理　308
14.2　异常及异常处理　310
14.2.1　异常及其特点　310
14.2.2　异常处理方法　310
14.3　C++异常处理机制　311
14.3.1　C++异常处理的基本过程　311
14.3.2　C++异常处理的其他形式　315
14.4　用exception类处理异常　319
14.4.1　C++的exception类　319
14.4.2　用户自定义类的对象传递异常　321
本章小结　324
习题　324
附录A　C++语言中运算符的优先级和结合性　327
附录B　ASCII码表　329
附录C　C++常用函数　330
参考文献　334

出版信息
  书 名：C++程序设计
作　 者：朱金付
出 版 社： 清华大学出版社
出版时间：2009-7-1
I S B N：9787 302194323
开 本：16开
定 价：37.00元
内容简介
本书较为全面地介绍了程序设计语言C++的基本概念、基本语法和基本程序思想。全书共分为12章和两个附录，内容包括计算机基础知识、C++基本概念、流程控制语句、函数和编译预处理、构造数据类型、指针、类和对象、继承与派生、多态、输入输出流类库、模板。
本书的写法遵循了计算机中“自顶向下”的思维方式，在整体上自上而下，由点到面，由一般到具体，由简单到复杂地展开。本书有大量精选的例题以及对例题的解析，还有大量反映C++概念和语法的习题。
本书可以作为大专院校理工科学生学习C++语言的教材，也可以作为计算机二级考试的参考书。

内容简介
《C++程序设计》引进工作是在教育部高等教育司和高教社的共同组织下，由国内信息科学技术领域的专家、教授广泛参与，在对大量国外教材进行多次遴选的基础上，参考了国内和国外著名大学相关专业的课程设置进行系统引进的。其中，JohnWiley公司出版的贝尔实验室信息科学研究中心副总裁Silberschatz教授的经典著作《操作系统概念》，是我们经过反复谈判，做了很多努力才得以引进的。WilliamStaUings先生曾编写了在美国深受欢迎的信息科学技术系列教材，其中有多种教材获得过美国教材和学术著作者协会颁发的计算机科学与工程教材奖，这批引进教材中就有他的两本著作。留美中国学者JiaweiHan先生的《数据挖掘》是该领域中具有里程碑意义的著作。由达特茅斯学院ThomasCormen和麻省理工学院、哥伦比亚大学的几位学者共同编著的经典著作《算法导论》，在经历了11年的锤炼之后于2001年出版了第二版。目前任教于美国Massachusetts大学的JamesKurose教授，曾在美国三所高校先后l0次获得杰出教师或杰出教学奖，由他主编的《计算机网络》出版后，以其体系新颖、内容先进而倍受欢迎。在努力降低引进教材售价方面，高等教育出版社做了大量和细致的工作。《C++程序设计》体现了权威性、系统性、先进性和经济性等特点。
编辑推荐
《C++程序设计》是本全英文读本。主要介绍了C++程序设计的内容。由教育部高等教育司推荐，是国外优秀信息科学与技术系列教学用书。值得大家注意。
《C++程序设计》的特点：权威性——教育等教育司推荐、教育部高等学校信息科学与技术引进教材专家组遴选。系统性——覆盖计算机专业主干课程和非计算机基础课程。先进性——著名计算机专家近两年的最新著作，内容体系先进。经济性——价格与国内自编教材相当，是国内引进教材价格最低的。
一流的品质，优惠的价格。
目录
Preface
1OcerviewofProgrammingandProblemSolving
2C++SyntaxandSemantics,andtheProgram
3NumericTypes,Expressions,andOutput
4ProgramInputandtheSoftwareDesignProcess
5Conditions,LogicalExpressions,andSelectionControlStructures
6Looping
7Functions
8Scope,Liftime,andMoreonFunctions
9AdditionalControlStructures
10SimpleDataTypes:Built-InandUser-Defined
11StructuredTypes,DateAbstraction,andClasses
12Arrays
13Array-BasedLists
14Object-OrintedSoftwareDevelopment
15Recursion
Glossary
AnswerstoSelectedExercises
Appendices
Index
……

内容简介
  本书紧扣标准c++，涵盖c++的主要语言特性，强调C+4-标准库的使用。全书共分8章：第1章简述C++语言的历史与演化、编译器与集成开发环境以及程序的编写、编译和运行；第2章介绍c++语言的基本数据类型，常量、变量以及运算符和表达式；第3章讲述数组和指针的概念、初始化和使用，介绍标准库string和vector类型；第4章介绍C++语言的程序流程控制以及编译预处理；第5章介绍C++语言中有关函数的特性和使用；第6章讲述类和对象，描述类的声明与定义，讨论类的构造和析构，类的静态成员、友元，类的运算符重载，对象指针、对象引用以及类成员指针；第7章重点讨论C++面向对象程序设计，介绍面向对象程序设计的设计思想、基本概念和基本方法；第8章介绍RTH与异常处理。
章节目录
前言
第1章 开始学习C++
第2章 数据类型运算符和表达式
第3章 string、vector、数组和指针
第4章 程序流程控制
第5章 函数
第6章 类和对象
第7章 面向对象程序设计
第8章 RTTI与异常处理
附录
参考文献

基本信息
书名：C++程序设计
套系名称：普通高等教育计算机基础课程规划教材
书号：978-7-113-11984-3　版次：1版1次　开本：16开　页码：320页
作者：冯博琴[1]
出版时间：2011-02-16 
定价：30 元
出版社：中国铁道出版社
适用专业：非计算机专业
内容简介
"本书系统地介绍C++的语法规则和面向过程、面向对象的程序设计方法，不要求有任何程序设计的基础知识。本书在体系结构上力求分散难点、突出重点，语言叙述上逻辑清晰，讲解中引入了较多的例题并同时对例题涉及的语法规则、编写思路和输出结果进行了较为详尽的解释和分析，所有的例题均在Visual Studio C++ 6.0环境下运行通过。
本书共分为10章，分别是C++语言概述，运算符、表达式和语句，控制结构，数组、结构体和共用体，函数， 指针，类和对象，类的继承，多态性，输入/输出和异常处理，在每章结尾有本章小结，对本章的主要内容进行归纳总结，每章最后还配有一定数量的习题帮助读者巩固所学知识。
本书适合作为高等学校非计算机专业C++程序设计课程的教材，也可以作为全国计算机等级考试二级C++的教材，还可以作为其他培训班的教学用书或自学参考书。
为便于教学，本书配有电子教案，同时为便于学习，配有和本教材配套的《C++语言程序设计上机与辅导》一书。
图书目录
"第1章 C++语言概述 1
1.1 C++语言的发展 1
1.2 C++程序概述 2
1.2.1 C++程序的结构和组成 2
1.2.2 C++程序的开发过程 6
1.3 Visual C++ 6.0集成环境的使用 6
1.3.1 Visual C++简介 6
1.3.2 项目开发过程 7
1.3.3 集成开发环境Developer Studio 7
1.3.4 创建C++程序 10
1.4 C++语言的数据类型 13
1.4.1 基本数据类型 13
1.4.2 派生类型 14
1.4.3 标识符 14
1.4.4 用typedef定义新的类型名 15
1.5 常量 15
1.5.1 直接常量 15
1.5.2 符号常量 18
1.6 变量 19
1.6.1 定义变量 19
1.6.2 引用 20
1.6.3 枚举类型 21
本章小结 22
习题1 22
第2章 运算符、表达式和语句 25
2.1 运算符概述 25
2.2 算术运算 26
2.2.1 算术运算符和算术表达式 26
2.2.2 表达式中的数据类型不一致时的转换 27
2.3 赋值运算 28
2.3.1 赋值运算符和赋值表达式 28
2.3.2 复合赋值运算符 29
2.3.3 自增运算符++和自减运算符-- 30
2.4 比较运算 31
2.5 逻辑运算 33
2.6 位运算 35
2.7 条件运算符 38
2.8 逗号运算符和逗号表达式 39
2.9 长度运算符 39
2.10 C++语句 40
本章小结 42
习题2 42
第3章 控制结构 45
3.1 顺序结构 45
3.1.1 声明语句 46
3.1.2 数据的输出 47
3.1.3 数据的输入 48
3.1.4 命名空间 49
3.2 选择结构 52
3.2.1 if语句 52
3.2.2 switch语句和break语句 57
3.3 循环结构 59
3.3.1 while 语句 59
3.3.2 do…while语句 62
3.3.3 for语句 63
3.3.4 循环的嵌套 65
3.3.5 用在循环体中的控制语句 68
本章小结 71
习题3 71
第4章 数组、结构体和共用体 76
4.1 一维数组 76
4.1.1 一维数组的定义 76
4.1.2 一维数组的初始化 77
4.1.3 引用数组元素 78
4.1.4 应用举例 79
4.2 二维数组 84
4.2.1 二维数组的定义 84
4.2.2 二维数组的初始化 85
4.2.3 二维数组元素的引用 86
4.2.4 应用举例 86
4.3 字符数组和字符串 89
4.3.1 用字符数组保存字符串 89
4.3.2 字符数组的输入/输出 90
4.3.3 字符串处理函数 91
4.3.4 字符串数组 95
4.4 结构体 96
4.4.1 定义结构体类型 96
4.4.2 定义结构体类型的变量 97
4.4.3 引用结构体变量的成员 98
4.5 共用体 100
本章小结 102
习题4 103
第5章 函数 107
5.1 结构化程序设计 107
5.1.1 过程化的C++程序框架 107
5.1.2 库函数和自定义函数 109
5.2 函数的概念 110
5.2.1 函数的定义 110
5.2.2 函数的返回 111
5.2.3 函数的声明 112
5.3 函数调用 114
5.3.1 函数调用的一般形式 114
5.3.2 设置形参的默认值 116
5.4 参数传递 117
5.4.1 参数的传递方式 117
5.4.2 一维数组名作为函数的参数 119
5.5 函数的特殊调用 120
5.5.1 嵌套调用 120
5.5.2 递归调用 121
5.6 变量的作用域和生存期 122
5.6.1 变量的作用域 123
5.6.2 变量存储类型 125
5.6.3 变量的生存期 128
5.7 函数重载 128
5.8 内联函数 130
5.9 函数模板 131
5.9.1 模板的定义和使用 132
5.9.2 模板实参的使用 133
5.9.3 模板函数的重载 135
本章小结 136
习题5 137
第6章 指针 141
6.1 指针和指针变量的概念 141
6.2 指针变量 143
6.2.1 指针变量的定义 143
6.2.2 指针变量可以进行的运算 144
6.2.3 动态存储空间的分配 145
6.3 指针和函数 147
6.3.1 用指针变量调用函数 147
6.3.2 函数调用时的地址传递 149
6.4 数组和指针 152
6.4.1 一维数组的地址和数组元素的引用 152
6.4.2 二维数组的地址和数组元素的引用 154
6.5 指针和字符串 159
6.6 指针和结构体类型 161
6.6.1 指向结构体类型的指针变量 162
6.6.2 在函数调用时使用结构体变量 163
6.7 指针数组和多级指针 166
6.7.1 指针数组 166
6.7.2 指向指针的指针变量 168
6.7.3 用指针数组作为main()函数的命令行参数 169
本章小结 169
习题6 170
第7章 类和对象 174
7.1 面向对象的程序设计概述 174
7.1.1 对象和类的概念 174
7.1.2 面向对象的程序设计 175
7.2 类的定义 176
7.2.1 定义类的一般格式 176
7.2.2 成员的访问控制权限 177
7.2.3 类的数据成员 178
7.2.4 定义类的函数成员 179
7.3 对象的定义和使用 181
7.3.1 定义类的对象 181
7.3.2 引用对象的成员 182
7.3.3 成员函数的重载 184
7.3.4 为成员函数的形参设置默认值 185
7.3.5 this指针 186
7.3.6 具有不同生存期的对象 187
7.4 构造函数和析构函数 187
7.4.1 定义构造函数 187
7.4.2 拷贝构造函数 189
7.4.3 定义析构函数 191
7.4.4 动态创建和删除对象时构造函数和析构函数的调用 194
7.4.5 默认构造函数和默认析构函数 195
7.5 对象成员 196
7.6 友元 199
7.6.1 友元函数 200
7.6.2 友元成员 202
7.6.3 友元类 203
7.7 静态成员 205
7.7.1 静态数据成员 205
7.7.2 静态函数成员 207
7.8 常类型 210
7.8.1 常对象 210
7.8.2 常成员函数 211
7.8.3 常数据成员 214
7.9 类的模板 215
7.10 使用string类处理字符串 217
本章小结 220
习题7 221
第8章 类的继承 224
8.1 继承和派生 224
8.1.1 继承和派生的概念 224
8.1.2 单继承的定义 225
8.1.3 派生类与基类成员的同名覆盖 227
8.1.4 多继承的定义 227
8.2 派生类对基类的继承方式 228
8.2.1 公有继承 228
8.2.2 私有继承 229
8.2.3 保护继承 229
8.3 派生类的构造函数和析构函数 231
8.3.1 派生类的构造函数 231
8.3.2 派生类的析构函数 232
8.4 具有继承关系的类中同名成员的辨识 237
8.5 虚基类 241
8.5.1 虚基类的定义 242
8.5.2 虚基类构造函数的调用 243
8.6 指向基类和派生类的指针变量 245
本章小结 247
习题8 248
第9章 多态性 252
9.1 多态性的概念 252
9.2 虚函数 253
9.2.1 虚函数的定义 253
9.2.2 多继承中的虚函数 255
9.2.3 虚函数的传递性 256
9.2.4 虚析构函数 259
9.3 纯虚函数和抽象类 260
9.4 运算符重载 262
9.4.1 运算符重载的概念 262
9.4.2 运算符重载为成员函数 263
9.4.3 运算符重载为友元函数 267
9.4.4 不同运算符重载应注意的问题 270
本章小结 271
习题9 271
第10章 输入/输出和异常处理 275
10.1 C++流的概念 275
10.2 输入/输出格式 277
10.2.1 数据的输入/输出 277
10.2.2 默认的输入/输出格式 280
10.2.3 输出格式控制 281
10.3 文件的输入/输出 286
10.3.1 文件的打开和关闭 286
10.3.2 文件流的状态 289
10.3.3 文件的顺序读写 289
10.3.4 文件的随机读写 292
10.4 异常处理机制 294
本章小结 296
习题10 297
附录A C++语言的运算符 300
附录B C++语言中的关键字 302
附录C C++语言的函数库 303
参考文献 306