目录 3
前言 3
第一部分基础 3
第1章什么是C++ 3
C++历史回顾 3
C++组织 4
如何学习C++ 5
第2章编程基础 7
程序从概念到运行 9
编写一个真正的程序 10
使用命令行编译器编写一个程序 10
使用集成开发环境编写一个程序 13
获取UNIX帮助 26
获取集成开发环境的帮助 28
编程练习 28
第3章风格 29
注释 29
C++代码 34
命名风格 35
编程盲从 36
缩进与编码格式 36
清楚 37
简明 38
一致性与组织结构 38
继续读下去 38
小结 39
程序的基本结构 41
程序元素 41
第4章基本说明和表达式 41
简单表达式 43
cout输出类 44
变量和存储 45
变量说明 46
整数 46
赋值语句 47
浮点数 48
浮点数除法与整数除法 48
字符 50
编程练习 51
答疑 51
第5章数组、修饰符和读数 53
数组 53
串 54
读数据 57
变量初始化 59
多维数组 60
整型 62
浮点型 64
常量与引用说明 64
修饰符 65
十六进制和八进制常量 67
简捷运算符 68
副作用 69
编程练习 71
答疑 71
if语句 73
第6章判定和控制语句 73
else语句 74
为何不使用strcmp函数 76
循环语句 76
while语句 76
break语句 78
continue语句 79
随处赋值的副作用 80
编程练习 81
答疑 82
第7章程序设计过程 85
设置 87
规格说明 87
代码设计 89
原型 89
Makefile 90
测试 93
调试 93
修改 96
电子考古 96
维护 96
编排程序 97
使用调试器 97
使用文本编辑器作为浏览器 97
加注释 97
编程练习 100
第8章再次讨论控制语句 103
for语句 103
第二部分简单的程序设计 103
switch语句 106
switch、break和continue 111
编程练习 113
答疑 114
第9章 变量作用域和函数 115
作用域和存储类 115
函数 118
参数类型一览 131
结构化程序设计基础 131
递归 132
答疑 134
编程练习 134
第10章C++预处理器 135
#define语句 135
条件编译 140
#include文件 142
参数宏 143
高级特征 145
小结 145
答疑 146
编程练习 146
第11章位运算 149
位运算符 150
与运算符( ) 150
按位或(|) 152
按位异或(^) 153
非运算符(~) 154
左移和右移运算符(<<、>>) 154
设置、清除和检测位 155
位图图形 159
编程练习 164
答疑 164
第三部分高级类型和类 167
第12章高级类型 167
结构 167
联合 169
typedef 172
enum类型 173
位域或紧缩结构 175
结构数组 177
编程练习 178
第13章类的初步讨论 179
栈 179
改进的栈 183
类的使用 185
介绍构造函数和析构函数 188
自动生成的成员函数 192
快捷方法 193
风格 194
编程练习 196
第14章类的进一步讨论 199
友元 199
常量函数 201
常量成员 202
静态成员变量 203
静态成员函数 205
static的含义 206
编程练习 206
第15章简单指针 209
常量指针 213
指针和输出 214
指针和数组 215
分隔串 219
指针和结构 222
命令行自变量 223
编程练习 227
答疑 227
第16章文件输入/输出 233
C++文件I/O 233
第四部分高级编程概念 233
转换程序 237
二进制和ASCII码文件 241
行尾难题 242
二进制I/O 244
缓冲问题 244
非缓冲I/O 245
设计文件格式 249
C风格的I/O程序 251
C风格的转换程序 253
C风格的二进制I/O 256
编程练习 258
答疑 258
第17章调试和优化 261
调试 261
只用于调试的代码 270
调试命令行开关 270
分而治之 270
连续调试 270
通读输出 272
交互调试器 272
调试一个二分查找程序 276
运行时错误 288
公开声明调试方法 290
优化 290
2的幂的效能 292
如何优化 295
实例研究:内联函数对正常函数 297
实例研究:优化一个涂色算法 297
编程练习 297
答疑 298
第18章运算符重载 299
运算符函数 301
运算符成员函数 310
复数类的完整定义 312
编程练习 322
答疑 323
浮点数格式 325
第19章浮点数 325
浮点数加法/减法 326
乘法 327
除法 327
上溢和下溢 328
舍入误差 328
精度 329
让舍入误差最小 329
判定精度 330
精度和速度 331
幂级数 332
编程练习 333
第20章高级指针 335
指针、结构和类 336
delete运算符 337
连表 338
顺序链表 342
双向链表 344
树 349
树的打印 352
程序的其余遗留部分 353
象棋程序的数据结构 356
编程练习 358
答疑 358
第21章高级类 361
派生类 361
虚函数 367
虚类 373
隐藏在派生类中的函数 375
派生类中的构造函数和析构函数 376
小结 379
编程练习 379
答疑 379
第五部分语言的其它特性 383
第22章 例外 383
栈例外 384
运行时库例外 390
编程练习 390
公用和私用 391
模块 391
第23章模块化程序设计 391
extern修饰符 392
头文件 394
模块体 395
使用无限数组的程序 395
用于多文件的Makefile 397
无限数组的使用 401
把任务划分为模块 407
模块划分示例:文本编辑器 407
编译器构造 408
电子表格 410
模块设计准则 411
编程练习 411
第24章模板 413
什么是模板 413
模板:严格的方法 413
函数特例 416
类模板 418
实现困难 420
类特例 420
编程练习 423
小结 423
第25章移植问题 425
模块化 425
字大小 425
字节顺序问题 426
对齐问题 427
NULL指针问题 428
文件类型 429
文件名问题 429
小结 430
答疑 430
第26章组合在一起 433
需求 433
代码设计 435
编码 436
功能描述 437
修改 441
测试 441
最后的警告 442
程序文件 442
编程练习 464
第27章从C到C++ 465
总的看法 465
K R风格的函数 465
malloc和free 466
struct 466
把结构转换为类 468
ssetjmp和longjmp 469
小结 470
编程练习 471
第28章C++内的“角落” 473
do/while 473
goto 473
?:命令 475
逗号运算符 475
指向成员的指针 476
()运算符的重载 476
“吸血鬼”特性 477
答疑 478
第29章程序设计格言 479
概述 479
设计 480
说明 480
switch语句 480
预处理器 480
C++程序员的10条戒律 481
风格 481
编译 481
最后的注解 482
答疑 482
第六部分附录 485
附录A ASCII码表 485
附录B范围 489
附录C运算符优先级规则 491
附录D用幂级数计算正弦函数 493
词汇表 501