目录 1
引言 1
第一部份 开始学习 3
第一章 正确看待Turbo C++ 3
1.1 C++的起源 3
1.2 何谓面向对象的程序设计? 3
1.3 C++:忠于C语言的实质 4
1.4 C++能做什么? 4
1.5 编译与解释的对比 5
1.6 写给C程序员的话 5
2.2 使用鼠标(mouse) 6
2.1 执行Turbo C++ 6
第二章 Turbo C++的集成开发环境 6
2.3 主菜单 7
2.4 显示完整菜单 10
2.5 主菜单讨论 10
2.5.1 系统菜单 10
2.5.2 文件 11
2.5.3 Edit 11
2.5.4 查找 12
2.5.5 运行 12
2.5.6 编译 12
2.5.9 选择项 13
2.5.8 项目(Project) 13
2.5.7 调试 13
2.5.10 窗口 14
2.5.11 Help 16
2.6 热键 16
2.7 上下文有关的帮助系统 16
2.8 理解窗口 18
2.9 编辑窗口 19
2.10 信息窗口 19
2.11 状态行 19
3.1 编辑命令 20
3.2 启动编辑器进入文本编辑 20
第三章 Turbo C++的编辑器 20
3.3 删除字符、字和行 21
3.4 文本块的移动、拷贝和删除 22
3.5 使用剪辑窗口 23
3.6 光标移动 24
3.7 查找和替换 24
3.8 设置和查找位置标志 27
3.9 存贮和装入文件 27
3.10 自动缩进格式 28
3.11 文本块的读写 28
3.12 配对分界符的匹配 29
3.13 其它命令 29
3.14 命令小结 30
3.15 改变编辑器的缺省方式 31
3.16 带文件名进入Turbo C++集成环境 32
第二部分 C语言 33
第四章 C语言的基本概念 33
4.1 准备集成开发环境(IDE) 33
4.2 C语言对字符的大小写是敏感的 33
4.3 一个简单的C程序 33
4.4 错误处理 36
4.5 第二个程序 37
4.7 什么是C函数? 38
4.6 快速复习 38
4.7.1 带参数的函数 39
4.7.2 函数返回值 39
4.7.3 函数的一般形式 41
4.8 两个简单命令 41
4.8.1 if 41
4.8.2 for循环 42
4.9 代码块 42
4.10 字符和字符串 43
4.11 printf()的快速复习 45
4.12 scanf()的快速复习 46
4.13 分号、括号和注释 46
4.15 C库函数 47
4.14 程序书写风格 47
4.16 C语言的关键字 48
4.17 专用词汇 49
第五章 变量、常量、运算符和表达式 50
5.1 标识符(identifier) 50
5.2 数据类型 50
5.3 变量说明 53
5.4 常量(constants) 56
5.4.1 十进制和八进制常量 56
5.4.2 字符串(string)常量 56
5.4.3 转义字符常量 57
5.4.4 变量初始化 57
5.5 运算符(operator) 58
5.5.1 算术运算符 59
5.5.2 增量和减量运算符 60
5.5.3 关系和逻辑运算符 61
5.5.4 赋值运算符 64
5.6 表达式 65
5.6.1 表达式中的类型转换 65
5.6.2 强制类型说明(cast) 66
5.6.3 空格和括号 67
第六章 程序控制语句 68
6.1 if语句 68
6.1.1 使用else语句 70
6.1.2 if-else-if结构 70
6.1.4 if语句嵌套 72
6.1.3 条件表达式 72
6.2 开关语句 73
6.2.1 default语句 75
6.2.2 对break语句的进一步分析 76
6.2.3 switch语句嵌套 77
6.3 循环语句 80
6.4 for循环 80
6.4.1 for循环的基础 80
6.4.2 for循环的变化 82
6.4.3 无限循环 84
6.4.4 跳出for循环 84
6.5 while循环 85
6.4.5 使用空的for循环 85
6.6 do while循环 87
6.7 循环嵌套 88
6.8 退出循环 91
6.9 继续语句 93
6.10 标号和goto语句 94
第七章 数组和串 96
7.1 一维数组 96
7.1.1 无边界检查 97
7.1.2 一维数组即线性表 97
7.2 字符串 98
7.2.1 从键盘上输入字符串 98
7.2.2 几个有关串的库函数 99
7.2.3 空(null)结束符的使用 103
7.3 二维数组 104
7.3.1 字符串数组 106
7.4 多维数组 107
7.5 数组初始化 108
7.6 搜索游戏 110
第八章 指针 116
8.1 指针即地址 116
8.2 指针变量 116
8.3 指针操作符 117
8.4.1 指针赋值 118
8.4 指针表达式 118
8.4.2 指针运算 119
8.4.3 指针比较 120
8.5 指针和数组 120
8.5.1 给指针加下标 122
8.5.2 指针与字符串 123
8.5.3 取数组元素地址 124
8.5.4 指针数组 125
8.5.5 使用数组和指针的一个趣例 127
8.6 指针的指针 132
8.7 指针的初始化 133
8.8 使用指针应注意的问题 134
9.2 返回语句 136
第九章 进一步讨论函数 136
9.1 函数的一般形式 136
9.2.1 从函数返回 137
9.2.2 返回值 137
9.3 返回非整型值的函数 140
9.3.1 使用函数原型 140
9.3.2 返回指针 142
9.3.3 void类型函数 143
9.4 进一步讨论原型 144
9.4.1 实参不匹配 144
9.4.2 进一步讨论头文件 145
9.4.4 谈谈旧式C语言程序 146
9.4.3 原型化不带形参的函数 146
9.5 函数作用域规则 147
9.5.1 局部变量 148
9.5.2 形参 150
9.5.3 全局变量 150
9.5.4 最后一个作用域的例子 151
9.6 进一步讨论函数的形参和实参 152
9.6.1 值调用与引用调用 152
9.6.2 建立引用调用 153
9.6.3 用数组调用函数 154
9.7 主函数main()的参数—argc、argv和env 159
9.8 main()中返回值 161
9.9 递归 162
9.10 传统与现代函数参数说明的对比 164
9.11 补充说明 166
9.11.1 参数与通用函数 166
9.11.2 效率 166
第十章 输入、输出和磁盘文件 168
10.1 两个预处理器命令 168
10.1.1 #define 168
10.1.2 #include 170
10.3.1 文本流 171
10.3.2 二进制流 171
10.3 流 171
10.2 流和文件 171
10.3.3 文件 172
10.4 概念上的东西与实际上的东西对比 172
10.5 控制台I/O 172
10.5.1 读写字符 173
10.5.2 读写字符串 174
10.6 格式化的控制台I/O 175
10.6.1 函数printf() 175
10.6.2 函数scanf() 177
10.7 ANSI I/O系统 181
10.7.1 文件指针 181
10.7.2 打开文件 182
10.7.4 读一个字符 184
10.7.5 feof()的使用 184
10.7.3 写一个字符 184
10.7.6 关闭文件 185
10.7.7 ferror()和rewind() 185
10.7.8 fopen(),getc(),putc()和fclose()的用法 185
10.7.9 getw()和putw()的用法 188
10.7.10 fgets()和fputs() 189
10.7.11 fread()和fwrite() 189
10.7.12 fseek()与随机存取I/O 191
10.7.13 标准流 194
10.7.14 fprintf()和fscanf() 196
10.8 类UNIX文件系统 199
10.7.15 删除文件 199
10.8 open(),creat()和close() 200
10.8.2 read()和w rite() 201
10.8.3 unlink() 203
10.8.4 随机存取文件和lseek() 203
第十一章 高级数据类型 206
11.1 存取修饰符 206
11.1.1 常量修饰符const 206
11.1.2 易失性修饰符volatile 207
11.2 存贮类定义符 208
11.2.1 存贮定义符auto 209
11.2.2 存贮定义符extern 209
11.2.4 静态局部变量 210
11.2.3 静态(static)变量 210
11.2.5 静态全局变量 211
11.2.6 寄存器(register)变量 212
11.3 赋值中的类型转换 214
11.4 函数类型修饰符 215
11.4.1 函数类型修饰符pascal 215
11.4.2 函数类型修饰符cdecl 216
11.4.3 函数类型修饰符inte?upt 217
11.5 函数指针 217
11.6 动态存贮单元 219
11.7 内存分配和释放存贮空间 220
12.1 结构 223
第十二章 用户定义的数据类型 223
12.2 结构数组 225
12.3 给结构赋值 234
12.4 把结构传递给函数 235
12.4.1 把结构元素传递给函数 235
12.4.2 把整个结构传递给函数 236
12.5 结构指针 237
12.5.1 说明一个结构指针 237
12.5.2 使用结构指针 237
12.6 结构内的数组和结构 242
12.7 位域 243
12.8 联合 247
12.9 枚举 251
12.10 使用sizeof来确保可移植性 254
12.11 typedef 256
第十三章 高级操作符 257
13.1 按位操作符 257
13.2 “?”操作符 264
13.3 C的缩写 267
13.4 逗号(,)操作符 267
13.5 方括号和括号 268
13.6 优先级小结 268
第十四章 屏幕控制函数 269
14.1 基本文本模式函数 269
14.1.1 文本窗口 269
14.1.3 光标定位 270
14.1.2 清窗口 270
14.1.4 清除至行尾 271
14.1.5 删除插入文本行 271
14.1.6 建立窗口 273
14.1.7 一些窗口I/O函数 275
14.1.8 文本模式 278
14.1.9 输出彩色文本 278
14.2 Turbo C++图形子系统 280
14.2.1 窗口的另一名称 280
14.2.2 初始化视频适配器 281
14.2.3 退出图形模式 283
14.2.4 色彩及基色 283
14.2.5 基本绘图函数 285
14.2.6 改变绘图色 286
14.2.7 填满一块区域 286
14.2.8 rectangle()函数 287
14.2.9 建立视区 289
第十五章 C语言的预处理器 292
15.1 C语言预处理器 292
15.2 #define命令 292
15.3 #error命令 294
15.4 #include命令 294
15.5 条件编译命令 294
15.5.1 #if,#else,#elif,和#endif 295
15.5.2 #ifdef和ifndef条件编译命令 297
15.6 #undef命令 298
15.7 #line命令 299
15.8 #pragma命令 299
15.9 预定义宏名 301
第三部分 TurboC++面向对象的特性 304
第十六章 C++概况 304
16.1 什么是面向对象的程序设计? 304
16.1.1 对象 304
16.1.2 多态性 305
16.1.3 继承 305
16.2 C++几点基础 305
16.4 类和对象的介绍 307
16.3 编译C++程序 307
16.5 函数重载 311
16.6 运算符重载 314
16.7 继承 314
16.8 构造(函数)和析构(函数) 321
16.9 C++关键字 324
第十七章 对类的进一步考查 326
17.1 带参数的构造函数 326
17.2 友元函数 330
17.3 缺省函数实参 334
17.4 类与结构的联系 338
17.5 类与联合的联系 339
17.6 内联(inline)函数 341
17.7 深入讨论继承 343
17.8 多继承 349
17.9 传递对象给函数 354
17.10 对象数组 355
17.11 对象指针 357
第十八章 函数和运算符重载 360
18.1 构造函数重载 360
18.2 C++中的局部变量 361
18.3 在构造函数中应用动态初始化 364
18.4 关键字this 366
18.5 运算符重载 367
18.6 引用 377
18.6.1 非参数引用变量 380
18.6.2 用引用来重载一元运算符 381
18.7 运算符重载的另一例子 384
第十九章 继承性、虚函数及多态性 390
19.1 指向派生类的指针 390
19.2 虚函数 392
19.3 为什么使用虚函数 396
19.4 纯虚函数和抽象类 400
19.5 编译连接与执行连接的对比 402
19.6 派生类中的构造函数和撤消函数 403
19.7 多基类 406
20.1 为什么C++有自己的I/O系统 408
第二十章 使用C++的I/O类库 408
20.2 C++的流 409
20.3 C++的流类 409
20.4 创建自己的插入/提取符函数 409
20.4.1 创建插入符 410
20.4.2 重载提取符 413
20.5 格式化I/O 414
20.5.1 用ios的成员函数格式输出 414
20.5.2 使用控制器函数 419
20.5.3 建立自己的控制器函数 420
20.6 文件I/O 422
20.6.1 打开、关闭文件 422
20.6.2 读/写文本文件 424
20.6.3 二进制文件I/O 426
20.6.4 检测EOF 429
20.6.5 随机访问 432
第二十一章 C++的其它方面 432
21.1 用new和delete的动态存储分配 432
21.2 静态类成员 441
21.3 C与C++的区别 444
21.4 Turbo C++中的复数和BCD类 445
21.5 基于消息的思想方法 449
21.6 最后一点想法 452
附录A 常用的C语言的库函数 453
A.1 字符串和字符函数 453
A.2 数学函数 464
A.3 与操作系统有关的函数 472
A.4 其它函数 478
附录B Turbo C++的调试器 489
B.1 准备调试的程序 489
B.2 什么是源程序级调试器 489
B.3 调试器基础 489
B.3.1 单步执行 490
B.3.2 设置断点 490
B.4 观察变量 491
B.5 观察堆栈 493
B.6 计算表达式的值 493
B.8 使用寄存器窗口 494
B.7 审查变量 494
C.1 8086系列处理器 495
C.2 地址的计算 495
附录C Turbo C++的存储模式 495
C.3 近指针与远指针的比较 496
C.4 存储模式 496
C.4.1 微型模式 496
C.4.2 小模式 496
C.4.3 中模式 496
C.4.6 巨型模式 497
C.4.7 模式的选择 497
C.4.5 大模式 497
C.4.4 紧凑模式 497
C.4.8 存储模式的编译选择项 498
C.5 跨越存储模式的限制 498
C.5.1 far 498
C.5.2 near 499
C.5.3 huge 499
C.5.4 Turbo C++的段修饰符 499
附录D 面向对象的虚拟存储管理覆盖技术 501
附录E 使用命令编译器 502
E.1 使用命令全行编译器编译程序 502
附录F 编译多文件程序 506
F.1 工程及工程选择项 506