设为首页 加入收藏

TOP

C++程序设计(第8版) 目录
2013-10-07 14:55:16 来源: 作者: 【 】 浏览:63
Tags:程序设计 目录
目录
 
第1章  计算机和C++(www.cppentry.com)编程(www.cppentry.com)入门 1
1.1  计算机系统 2
1.1.1  硬件 2
1.1.2  软件 5
1.1.3  高级语言 6
1.1.4  编译器 7
1.1.5  历史回顾 8
1.2  编程(www.cppentry.com)和问题求解 9
1.2.1  算法 9
1.2.2  程序设计 10
1.2.3  面向对象编程(www.cppentry.com) 12
1.2.4  软件生命周期 12
1.3  C++(www.cppentry.com)入门 13
1.3.1  C++(www.cppentry.com)语言的起源 13
1.3.2  一个C++(www.cppentry.com)示范程序 14
1.3.3  陷阱:在\n中错误地使用
斜杠 17
1.3.4  编程(www.cppentry.com)提示:输入和输出语法 17
1.3.5  简单C++(www.cppentry.com)程序的布局 17
1.3.6  陷阱:在include的文件名前
错误地添加一个空格 18
1.3.7  编译和运行C++(www.cppentry.com)程序 19
1.3.8  编程(www.cppentry.com)提示:让程序运行起来 19
1.4  测试和调试 21
1.4.1  程序错误的分类 22
1.4.2  陷阱:错误地假定程序正确 22
小结 23
自测题答案 23
编程(www.cppentry.com)项目 25
第2章  C++(www.cppentry.com)基础知识 27
2.1  变量和赋值 28
2.1.1  变量 28
2.1.2  名称:标识符 30
2.1.3  变量声明 31
2.1.4  赋值语句 32
2.1.5  陷阱:未初始化的变量 33
2.1.6  编程(www.cppentry.com)提示:使用有意义的
名称 34
2.2  输入和输出 35
2.2.1  使用cout进行输出 35
2.2.2  include预编译指令和
命名空间 36
2.2.3  转义序列 37
2.2.4  编程(www.cppentry.com)提示:用\n或endl终止
每一个程序 38
2.2.5  格式化带小数点的数字 39
2.2.6  用cin进行输入 40
2.2.7  设计输入和输出 41
2.2.8  编程(www.cppentry.com)提示:I/O中的换行 41
2.3  数据类型和表达式 42
2.3.1  int类型和double类型 42
2.3.2  其他数值类型 43
2.3.3  char类型 44
2.3.4  bool类型 45
2.3.5  string类简介 45
2.3.6  类型的兼容性 47
2.3.7  算术操作符和表达式 48
2.3.8  陷阱:除法中的整数 50
2.3.9  更多赋值语句 51
2.4  简单控制流程 51
2.4.1  一个简单的分支机制 52
2.4.2  陷阱:连续的不等式 56
2.4.3  陷阱:在该用==的时候
错用了= 56
2.4.4  复合语句 57
2.4.5  简单的循环机制 58
2.4.6  递增操作符和递减操作符 61
2.4.7  编程(www.cppentry.com)实例:信用卡余额 61
2.4.8  陷阱:无限循环 63
2.5  程序风格 64
2.5.1  缩进 64
2.5.2  注释 65
2.5.3  为常量命名 66
小结 67
自测题答案 68
编程(www.cppentry.com)项目 71
第3章  更多的控制流程 77
3.1  使用布尔表达式 78
3.1.1  布尔表达式求值 78
3.1.2  陷阱:将布尔表达式
转换成int值 81
3.1.3  枚举类型(选读) 83
3.2  多路分支 83
3.2.1  嵌套语句 83
3.2.2  编程(www.cppentry.com)提示:在嵌套语句中
使用花括号 84
3.2.3  多路if-else语句 86
3.2.4  编程(www.cppentry.com)实例:州收入税 87
3.2.5  switch语句 89
3.2.6  陷阱:忘记在switch语句中
添加break 92
3.2.7  为菜单使用switch语句 92
3.2.8  语句块 94
3.2.9  陷阱:疏忽局部变量 95
3.3  C++(www.cppentry.com)循环语句详解 97
3.3.1  while语句回顾 97
3.3.2  再论递增操作符和递减
操作符 98
3.3.3  for语句 100
3.3.4  陷阱:for语句中多余的
分号 103
3.3.5  应该使用哪种循环 104
3.3.6  陷阱:未初始化的变量和
无限循环 105
3.3.7  break语句 106
3.3.8  陷阱:嵌套循环中的
break语句 106
3.4  设计循环 107
3.4.1  求和与求乘积的循环 107
3.4.2  终止循环 108
3.4.3  嵌套循环 111
3.4.4  调试循环 112
小结 114
自测题答案 115
编程(www.cppentry.com)项目 118
第4章  过程抽象和返回值的函数 123
4.1  自顶向下设计 124
4.2  预定义函数 124
4.2.1  使用预定义函数 124
4.2.2  随机数生成 128
4.2.3  强制类型转换 129
4.2.4  强制类型转换的古老形式 131
4.2.5  陷阱:整数除法丢弃了
小数部分 131
4.3  程序员自定义函数 132
4.3.1  函数定义 132
4.3.2  能返回布尔值的函数 136
4.3.3  另一种形式的函数声明 136
4.3.4  陷阱:实参顺序错误 137
4.3.5  函数定义语法总结 138
4.3.6  再论函数定义的位置 139
4.3.7  编程(www.cppentry.com)提示:在分支语句中
使用函数调用 139
4.4  过程抽象 140
4.4.1  黑盒的比喻 140
4.4.2  编程(www.cppentry.com)提示:选择形参名称 142
4.4.3  编程(www.cppentry.com)提示:嵌套循环 142
4.4.4  案例分析:购买比萨 144
4.4.5  编程(www.cppentry.com)提示:使用伪代码 149
4.5  局部变量 149
4.5.1  函数如同小程序 149
4.5.2  编程(www.cppentry.com)实例:豌豆试验田 151
4.5.3  全局常量和全局变量 151
4.5.4  传值形参是局部变量 153
4.5.5  块作用域 155
4.5.6  再论命名空间 156
4.5.7  编程(www.cppentry.com)实例:阶乘函数 158
4.6  重载函数名称 158
4.6.1  重载入门 159
4.6.2  编程(www.cppentry.com)实例;购买比萨
(修订版) 161
4.6.3  自动类型转换 163
小结 164
自测题答案 165
编程(www.cppentry.com)项目 167
第5章  所有子任务的函数 171
5.1  void函数 172
5.1.1  void函数的定义 172
5.1.2  编程(www.cppentry.com)实例:温度换算 174
5.1.3  void函数中的return语句 175
5.2  传引用形参 176
5.2.1  初探传引用调用 177
5.2.2  传引用调用详解 178
5.2.3  编程(www.cppentry.com)实例:swap_values
函数 181
5.2.4  混合的参数列表 183
5.2.5  编程(www.cppentry.com)提示:应该使用
哪种参数 183
5.2.6  陷阱:疏忽造成的
局部变量 184
5.3  使用过程抽象 186
5.3.1  函数调用函数 186
5.3.2  前条件和后条件 188
5.3.3  案例分析:超市定价系统 188
5.4  测试和调试函数 192
存根和驱动程序 192
5.5  常规调试技术 196
5.5.1  不抱成见 196
5.5.2  检查常见错误 196
5.5.3  定位错误 196
5.5.4  assert宏 198
小结 199
自测题答案 200
编程(www.cppentry.com)项目 202
第6章  I/O流--对象和类入门 207
6.1  流和基本文件I/O 208
6.1.1  文件之于I/O的重要性 209
6.1.2  文件I/O 209
6.1.3  类与对象入门 212
6.1.4  编程(www.cppentry.com)提示:检查文件是否
成功打开 214
6.1.5  文件I/O技术 216
6.1.6  追加到文件(选读) 218
6.1.7  文件名作为输入(选读) 219
6.2  流I/O工具 221
6.2.1  用流函数格式化输出 222
6.2.2  操纵元 224
6.2.3  流作为函数实参 226
6.2.4  编程(www.cppentry.com)提示:检查文件尾 228
6.2.5  命名空间的问题 229
6.2.6  编程(www.cppentry.com)实例:整理文件格式 229
6.3  字符I/O 230
6.3.1  get和put成员函数 231
6.3.2  putback成员函数(选读) 233
6.3.3  编程(www.cppentry.com)实例:检查输入 234
6.3.4  陷阱:输入中
不期而遇的'\n' 235
6.3.5  编程(www.cppentry.com)实例:另一个new_line
函数 236
6.3.6  函数的默认实参(选读) 237
6.3.7  eof成员函数 240
6.3.8  编程(www.cppentry.com)实例:编辑文本文件 242
6.3.9  预定义字符函数 243
6.3.10  陷阱:toupper和tolower
返回值 245
小结 245
自测题答案 246
编程(www.cppentry.com)项目 250
第7章  数组 257
7.1  数组入门 258
7.1.1  声明和引用数组 258
7.1.2  编程(www.cppentry.com)提示:为数组使用for
循环 260
7.1.3  陷阱:数组索引总是
从零开始 260
7.1.4  编程(www.cppentry.com)提示:为数组长度使用
一个已定义常量 260
7.1.5  数组在内存中的表示 261
7.1.6  陷阱:数组索引越界 262
7.1.7  初始化数组 263
7.2  函数中的数组 264
7.2.1  索引变量作为函数参数 264
7.2.2  整个数组作为函数参数 266
7.2.3  const参数修饰符 268
7.2.4  陷阱:使用const参数
修饰符的使用不一致 269
7.2.5  返回数组的函数 270
7.2.6  案例分析:产量图 270
7.3  数组编程(www.cppentry.com) 280
7.3.1  部分填充数组 280
7.3.2  编程(www.cppentry.com)提示:不要吝啬形参 282
7.3.3  编程(www.cppentry.com)实例:搜索数组 282
7.3.4  编程(www.cppentry.com)实例:数组排序 284
7.4  多 维 数 组 287
7.4.1  多维数组基础 287
7.4.2  多维数组参数 288
7.4.3  编程(www.cppentry.com)实例:二维打分程序 289
7.4.4  陷阱:在数组索引之间使用
逗号 292
小结 292
自测题答案 293
编程(www.cppentry.com)项目 296
第8章  字符串和向量 303
8.1  字符串的数组类型 304
8.1.1  C字符串值和C字符串
变量 305
8.1.2  陷阱:为C字符串
使用=和== 307
8.1.3  <cstring>中的其他函数 309
8.1.4  C字符串输入和输出 312
8.1.5  C字符串到数值的转换和
可靠输入 314
8.2  标准string类 317
8.2.1  标准类string简介 317
8.2.2  string类的I/O 319
8.2.3  编程(www.cppentry.com)提示:getline的
其他版本 322
8.2.4  陷阱:混合使用"cin >>
变量;"和getline 322
8.2.5  用string类进行字符串处理 323
8.2.6  编程(www.cppentry.com)实例:回文测试 326
8.2.7  string对象和C字符串
之间的转换 328
8.3  向量 329
8.3.1  向量基础知识 329
8.3.2  陷阱:使用方括号时超出
向量长度 332
8.3.3  编程(www.cppentry.com)提示:向量赋值具有
良好行为 332
8.3.4  效率问题 332
小结 333
自测题答案 334
编程(www.cppentry.com)项目 335
第9章  指针和动态数组 341
9.1  指针 342
9.1.1  指针变量 343
9.1.2  基本内存管理 348
9.1.3  陷阱:虚悬指针 348
9.1.4  静态变量和自动变量 348
9.1.5  编程(www.cppentry.com)提示:定义指针类型 349
9.2  动态数组 350
9.2.1  数组变量和指针变量 351
9.2.2  创建和使用动态数组 352
9.2.3  指针运算(选读) 356
9.2.4  多维动态数组(选读) 357
小结 358
自测题答案 359
编程(www.cppentry.com)项目 359
第10章  定义类 363
10.1  结构 364
10.1.1  用于异种数据的结构 364
10.1.2  陷阱:结构定义中忘记
添加分号 367
10.1.3  结构作为函数参数 368
10.1.4  编程(www.cppentry.com)提示:使用层次化
结构 368
10.1.5  对结构进行初始化 370
10.2  类 372
10.2.1  定义类和成员函数 372
10.2.2  公共成员和私有成员 375
10.2.3  编程(www.cppentry.com)提示:将所有成员
变量设为私有 381
10.2.4  编程(www.cppentry.com)提示:定义取值函数和
赋值函数 381
10.2.5  编程(www.cppentry.com)提示:将赋值操作符
用于对象 382
10.2.6  编程(www.cppentry.com)实例:BankAccount类
(版本1) 382
10.2.7  总结类的一些特征 386
10.2.8  用于初始化的构造函数 387
10.2.9  编程(www.cppentry.com)提示:总是包括默认
构造函数 392
10.2.10  陷阱:无参数构造函数 393
10.3  抽象数据类型 395
10.3.1  用于生成抽象数据
类型的类 395
10.3.2  编程(www.cppentry.com)实例:类的另一种
实现 398
10.4  继承 401
10.4.1  派生类 401
10.4.2  定义派生类 402
小结 405
自测题答案 405
编程(www.cppentry.com)项目 409
第11章  类中的友元函数、
重载操作符和数组 413
11.1  友元函数 414
11.1.1  编程(www.cppentry.com)实例:一个相等性
函数 414
11.1.2  友元函数 416
11.1.3  编程(www.cppentry.com)提示:定义取值函数和
友元函数 418
11.1.4  编程(www.cppentry.com)提示:同时使用成员
函数和非成员函数 418
11.1.5  编程(www.cppentry.com)实例:Money类
(版本1) 419
11.1.6  实现digit_to_int(选读) 423
11.1.7  陷阱:数字常量中的
前置零 424
11.1.8  const参数修饰符 425
11.1.9  陷阱:修饰符const的
用法不一致 427
11.2  重载操作符 429
11.2.1  重载操作符 429
11.2.2  用于自动类型转换的
构造函数 432
11.2.3  重载一元操作符 433
11.2.4  重载>>和<< 434
11.3  数组和类 440
11.3.1  类数组 440
11.3.2  数组作为类成员 443
11.3.3  编程(www.cppentry.com)实例:用于部分填充
数组的类 444
11.4  类和动态数组 445
11.4.1  编程(www.cppentry.com)实例:字符串变量类 446
11.4.2  析构函数 448
11.4.3  陷阱:指针作为传值参数 450
11.4.4  拷贝构造函数 451
11.4.5  重载赋值操作符 454
小结 457
自测题答案 457
编程(www.cppentry.com)项目 463
第12章  独立编译和命名空间 469
12.1  独立编译 470

12.1.1  ADT回顾 470
12.1.2  案例分析:独立编译的
DigitalTime类 471
12.1.3  使用#ifndef 478
12.1.4  编程(www.cppentry.com)提示:定义其他库 480
12.2  命名空间 481
12.2.1  命名空间和using预编译
指令 481
12.2.2  创建命名空间 482
12.2.3  限定名称 484
12.2.4  命名空间的微妙之处
(选读) 485
12.2.5  无名命名空间 486
12.2.6  编程(www.cppentry.com)提示:为命名空间
选择名称 489
12.2.7  陷阱:混淆全局命名空间和
无名命名空间 490
小结 491
自测题答案 491
编程(www.cppentry.com)项目 492
第13章  指针和链表 495
13.1  节点和链表 496
13.1.1  节点 497
13.1.2  链表 500
13.1.3  在表头插入节点 501
13.1.4  陷阱:丢失节点 503
13.1.5  搜索链表 504
13.1.6  指针作为迭代器 506
13.1.7  在列表中插入和删除节点 507
13.1.8  陷阱:为动态数据结构
使用赋值操作符 509
13.1.9  链表的变体 510
13.1.10  类构成的链表 512
13.2  栈和队列 514
13.2.1  栈 514
13.2.2  编程(www.cppentry.com)实例:栈类 515
13.2.3  队列 518
13.2.4  编程(www.cppentry.com)实例:队列类 518
小结 521
自测题答案 522
编程(www.cppentry.com)项目 523
第14章  递归 529
14.1  面向任务的递归函数 530
14.1.1  案例分析:垂直数字 531
14.1.2  深入递归 536
14.1.3  陷阱:无穷递归 537
14.1.4  用于递归的栈 538
14.1.5  陷阱:栈溢出 539
14.1.6  递归与迭代 539
14.2  面向值的递归函数 540
14.2.1  要返回值的递归函数的
常规形式 540
14.2.2  编程(www.cppentry.com)实例:另一个求乘方
函数 540
14.3  递归思想 544
14.3.1  递归设计技术 544
14.3.2  案例分析:二叉搜索
(递归思想示例) 545
14.3.3  编程(www.cppentry.com)实例:递归成员函数 550
小结 553
自测题答案 553
编程(www.cppentry.com)项目 556
第15章  继承 559
15.1  继承基础 560
15.1.1  派生类 560
15.1.2  派生类中的构造函数 566
15.1.3  陷阱:使用来自基类的
私有成员变量 567
15.1.4  陷阱:私有成员函数
不会继承 569
15.1.5  protected限定符 569
15.1.6  重定义成员函数 571
15.1.7  重定义与重载的比较 573
15.1.8  访问重定义的基函数 574
15.2  继承细节 575
15.2.1  不继承的函数 575
15.2.2  派生类中的赋值操作符和
拷贝构造函数 575
15.2.3  派生类中的析构函数 576
15.3  多态性 577
15.3.1  晚期绑定 577
15.3.2  C++(www.cppentry.com)虚函数 578
15.3.3  虚函数和扩展类型兼容性 582
15.3.4  陷阱:切割问题 584
15.3.5  陷阱:不使用虚成员函数 585
15.3.6  陷阱:试图对虚成员函数
定义不齐全的类进行编译 585
15.3.7  编程(www.cppentry.com)提示:使析构函数成为
虚函数 586
小结 587
自测题答案 587
编程(www.cppentry.com)项目 590
第16章  异常处理 597
16.1  异常处理基础 598
16.1.1  异常处理的简单例子 599
16.1.2  定义自己的异常类 605
16.1.3  多个throw块和catch块 606
16.1.4  陷阱:首先捕捉较具体的
异常 607
16.1.5  编程(www.cppentry.com)提示:异常类可能
很简单 608
16.1.6  在函数中抛出异常 609
16.1.7  异常规范 610
16.1.8  陷阱:派生类中的
异常规范 611
16.2  用于异常处理的编程(www.cppentry.com)技术 612
16.2.1  抛出异常的时机 612
16.2.2  陷阱:未捕捉的异常 613
16.2.3  陷阱:嵌套try-catch块 613
16.2.4  陷阱:滥用异常 614
16.2.5  异常类层次结构 614
16.2.6  测试可用内存 614
16.2.7  重新抛出异常 615
小结 615
自测题答案 615
编程(www.cppentry.com)项目 616
第17章  模板 619
17.1  用于算法抽象的模板 620
17.1.1  函数模板 621
17.1.2  陷阱:编译器的复杂性 624
17.1.3  编程(www.cppentry.com)实例:泛化排序函数 625
17.1.4  编程(www.cppentry.com)提示:如何定义模板 628
17.1.5  陷阱:为不恰当的类型
使用模板 628
17.2  用于数据抽象的模板 628
17.2.1  类模板的语法 629
17.2.2  编程(www.cppentry.com)实例:数组类 631
小结 634
自测题答案 634
编程(www.cppentry.com)项目 636
第18章  标准模板库 639
18.1  迭代器 640
18.1.1  using声明 641
18.1.2  迭代器的基础知识 641
18.1.3  陷阱:编译器问题 645
18.1.4  迭代器的种类 646
18.1.5  常量和可变迭代器 648
18.1.6  逆向迭代器 649
18.1.7  其他种类的迭代器 650
18.2  容器 651
18.2.1  顺序容器 651
18.2.2  陷阱:迭代器和删除元素 654
18.2.3  编程(www.cppentry.com)提示:容器中的
类型定义 654
18.2.4  容器配接器stack和queue 655
18.2.5  关联容器set和map 657
18.2.6  效率问题 662
18.3  泛型算法 662
18.3.1  运行时间和大O表示法 663
18.3.2  容器访问运行时间 666
18.3.3  不修改容器的算法 666
18.3.4  会修改容器的算法 670
18.3.5  set算法 670
18.3.6  排序算法 671
小结 672
自测题答案 672
编程(www.cppentry.com)项目 673
附录1  C++(www.cppentry.com)关键字 679
附录2  操作符的优先级 680
附录3  ASCII字符集 681
附录4  部分库函数 682
附录5  内联函数 686
附录6  重载数组索引方括号 687
附录7  this指针 688
附录8  将操作符重载为成员操作符 690
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++程序设计(第8版) 前言 下一篇1.1 计算机系统

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: