《c++程序设计》是2011年3月人民邮电出版社出版的图书,作者是姚琳。
C++是一种计算机语言。C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。是至今为止最受广大程序员受用的最强大编程语言之一。
本书根据教育部非计算机专业计算机基础课程教学指导分委员会提出的《高等学校非计算机专业计算机基础课程教学基本要求》中的关于“程序设计”的课程教学要求编写。全书以面向对象的编程思想为主线,主要讲解程序设计基础知识、类与对象的基本概念、继承与多态、输入/输出流以及泛型程序设计等内容。
本书可作为高等院校“程序设计”课程的教材使用,也可作为学习程序设计的自学参考书和培训教材。
目录
- 第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