上篇 Borland C++程序设计指南 1
引言 1
0.1 本篇内容 1
0.2 规范定义介绍 1
0.2.1 格式和术语 2
第一章 词法 3
1.1 空白符 3
1.1.1 用\续行 4
1.1.2 注释 4
1.2 单词符号 5
1.3 关键字 6
1.3.1 标识符 7
1.4 常量 8
1.4.1 整型常量 10
1.4.2 字符常数 12
1.4.3 串文字 15
1.5 运算符描述 17
1.5.1 单目运算符 18
1.5.2 双目运算符 19
1.5.3 分隔符 20
1.6 声明 23
1.6.1 对象 23
1.6.2 左值 24
1.6.3 右值 24
1.6.4 类型和存储类 24
1.6.5 作用域 24
1.6.6 可见性 25
1.6.7 生存期 26
1.6.8 翻译单元 27
1.6.9 连接 27
1.6.10 名变换 28
1.7 声明语法 28
1.7.1 临时定义 29
1.7.2 可能的声明 29
1.7.3 外部声明和定义 33
1.7.4 类型说明符 35
1.7.5 类型分类 36
1.7.6 基类型 37
1.7.7 初始化 39
1.7.8 简单声明 40
1.7.9 存储类说明符 41
1.7.10 修饰符 42
1.7.11 复杂声明与说明符 46
1.8 指针 47
1.8.1 指向对象的指针 47
1.8.2 指向函数的指针 47
1.8.3 指针声明 48
1.8.4 指针与常量 49
1.8.5 指针算术运算 49
1.8.6 指针转换 50
1.8.7 C++引用说明 50
第二章 词汇结构语法 51
2.1 数组 51
2.2 函数 51
2.2.1 声明与定义 51
2.2.2 声明与原型 52
2.2.3 定义 53
2.2.4 形参声明 53
2.2.5 函数调用与参数转换 54
2.3 结构 54
2.3.1 无标号结构与typedef 55
2.3.2 结构成员声明 55
2.3.3 结构与函数 55
2.3.4 结构成员存取 56
2.3.5 结构字对齐 57
2.3.6 结构名空间 57
2.3.7 不完整声明 58
2.3.8 位域 58
2.4 联合 59
2.4.1 联合声明 59
2.5 枚举 60
2.6 表达式 61
2.6.1 表达式与C++ 65
2.6.2 求值次序 65
2.6.3 出错与溢出 66
2.7 操作符 66
2.7.1 后缀和前缀操作符 66
2.7.2 增量或减量操作符 67
2.7.3 单目操作符 67
2.7.4 sizeof操作符 69
2.7.5 乘法类操作符 69
2.7.6 加法类操作符 70
2.7.7 移位操作符 70
2.7.8 关系操作符 71
2.7.9 相等类操作符 72
2.7.10 按位与操作符& 73
2.7.11 按位异或操作符^ 73
2.7.12 按位或操作符 73
2.7.13 逻辑与操作符&& 74
2.7.14 逻辑或操作符‖ 74
2.7.15 条件操作符?: 74
2.7.16 赋值操作符 75
2.7.17 逗号操作符 76
2.7.18 C++操作符 76
2.8 语句 76
2.8.1 块 78
2.8.2 带标号语句 78
2.8.3 表达式语句 78
2.8.4 选择语句 78
2.8.5 循环语句 80
2.8.6 跳转语句 81
第三章 C++ 83
3.1 引用 83
3.1.1 简单引用 83
3.1.2 引用参数 83
3.2 作用域存取操作符 85
3.3 new与delete操作符 85
3.3.1 错误处理 86
3.3.2 关于数组的new操作符 86
3.3.3 用new操作符进行初始化 86
3.4 类 86
3.4.1 类名 87
3.4.2 分类类型 87
3.4.3 类名作用域 87
3.4.4 类对象 88
3.4.5 类成员表 88
3.4.6 成员函数 88
3.4.7 关键字this 88
3.4.8 内部函数 89
3.4.9 静态成员 89
3.4.10 成员作用域 90
3.4.11 基类与派生类存取 92
3.5 虚基类 93
3.6 类的友元 94
3.7 构造函数与析构函数 95
3.8 构造函数 96
3.8.1 默认构造函数 97
3.8.2 拷贝构造函数 97
3.8.3 构造函数的重载 97
3.8.4 构造函数的调用次序 98
3.9 析构函数 101
3.9.1 何时调用析构函数 102
3.9.2 atexit、#pragma exit与析构函数 102
3.9.3 exit与析构函数 102
3.9.4 abort与析构函数 102
3.9.5 虚析构函数 103
3.10 重载操作符 104
3.11 操作符函数 105
3.11.1 重载操作符与继承 105
3.11.2 重载new和delete 105
3.11.3 重载单目操作符 106
3.11.4 重载双目操作符 106
3.11.5 重载赋值操作符= 106
3.11.6 重载函数调用操作符() 107
3.11.7 重载下标操作符[] 107
3.11.8 重载类成员存取操作符-> 107
3.12 虚函数 107
3.13 抽象类 109
3.14 C++作用域 110
3.14.1 类作用域 110
3.15 隐藏 110
3.15.1 C++作用域规则小结 110
第四章 预处理器 112
4.1 空指令 114
4.2 #define与#undef指令 114
4.2.1 简单的#define宏 114
4.2.2 #undef指令 115
4.2.3 -D与-U选择项 116
4.2.4 关键字与保护字 116
4.2.5 带参数的宏 116
4.3 文件包含指令#include 118
4.3.1 用<头名>搜索头文件 119
4.3.2 用“头名”搜索头文件 119
4.4 条件编译 119
4.4.1 #if,#elif,#else和#endif条件指令 120
4.4.2 #ifdef和#ifndef条件指令 120
4.5 #line行控制指令 121
4.6 #error指令 122
4.7 #pragma指令 123
4.8 预定义的宏 126
第五章 使用C++流 130
5.1 何谓流 130
5.1.1 iostream库 130
5.1.2 输出 133
5.1.3 输入 136
5.1.4 简单文件I/O 138
5.1.5 串流处理 139
5.2 流类参考 140
第六章 存储管理 148
6.1 内存溢出错误 148
6.1.1 8086寄存器 149
6.1.2 内存段 150
6.1.3 指针 151
6.1.4 六种内存模式 152
6.2 混合模式程序设计:寻址修饰符 155
6.2.1 段指针 156
6.2.2 声明far对象 157
6.2.3 声明near或far函数 157
6.2.4 声明near,far或huge指针 158
6.2.5 使用库文件 159
6.2.6 连接混合模式 159
6.3 覆盖(VROOMM) 160
6.3.1 覆盖工作过程 160
6.3.2 要求 162
6.3.3 使用覆盖 162
6.3.4 覆盖程序 163
6.3.5 调度 164
第七章 数字运算 166
7.1 浮点选项 166
7.1.1 80x87芯片仿真 166
7.1.2 使用80x87代码 166
7.1.3 无浮点代码 166
7.1.4 快速浮点选项 166
7.1.5 87环境变量 167
7.1.6 寄存器和80x87 167
7.1.7 消除浮点异常 167
7.2 复数运算的使用 168
7.2.1 BCD运算的使用 169
第八章 视频函数 171
8.1 视频方式概述 171
8.2 窗口和视区概述 171
8.2.1 什么是窗口 172
8.2.2 什么是视区 172
8.2.3 坐标 172
8.3 文本方式下的程序设计 172
8.3.1 控制台I/O函数 172
8.3.2 文本窗口 174
8.3.3 文本方式类型 175
8.3.4 文本颜色 176
8.3.5 高性能输出 177
8.4 图形方式下的程序设计 177
8.4.1 图形库函数 177
第九章 与汇编语言接口 188
9.1 混合语言程序设计 188
9.1.1 参数传递序列 188
9.2 从Borland C++调用.ASM 190
9.2.1 建立从Borland C++对.ASM的调用 191
9.2.2 书写一个汇编语言子程序 193
9.2.3 用C++连接汇编程序模块 198
9.3 从汇编程序调用C和C++子程序 199
9.3.1 建立 200
9.3.2 一个调用汇编程序模块的例子 201
9.4 伪变量、嵌入汇编和中断函数 203
9.4.1 伪变量 203
9.4.2 嵌入汇编语言 205
9.4.3 中断函数 210
9.4.4 使用低级练习 211
第十章 错误信息 213
10.1 运行时刻错误信息 214
10.2 编译时刻错误信息 215
附录A ANSI标准的实现 254
附录B 运行时刻库交叉引用 264
B.1 访问运行时刻库源码的原因 264
B.2 Borland C++头文件 264
B.3 各类库例程 266
附录C 类库 281
C.1 概述及重要概念 281
C.2 基于对象的层次中的抽象类 282
C.3 类库中所使用的约定 284
C.4 类库目录 287
C.5 类引用 288
附录D 类库源程序 315
下篇 WhiteWater资源开发工具 415
简介 415
0.1 功能 415
0.2 开发工具的主要成份 415
0.2.1 资源管理器 415
0.2.2 对话框编辑器 416
0.2.3 位图、光标和图标编辑器 416
0.2.4 菜单编辑器 416
0.2.5 其它编辑器 416
0.3 可处理的文件格式 416
0.4 用户须知 417
0.5 硬件和软件环境 417
0.5.1 安装 417
0.6 本篇内容 418
0.6.1 如何入门 418
第一章 入门 419
1.1 在DOS下启动 419
1.2 在Windows中启动 419
1.2.1 从Program Manager中启动 419
1.2.2 从File Manager或MS-DOS运行盒中启动 419
1.3 添加图标到Program Manager中 420
1.4 退出Resource Toolkit 420
第二章 资源和文件 421
2.1 何谓资源 421
2.2 可编辑资源 421
2.2.1 加速器 422
2.2.2 位图 422
2.2.3 光标 422
2.2.4 图标 422
2.2.5 对话框 422
2.2.6 菜单 423
2.2.7 串 423
2.3 可编辑或存贮的文件 423
2.3.1 可执行文件 425
2.3.2 资源文件 425
2.3.3 动态链接库 425
2.3.4 资源与对话框说明文件 426
2.3.5 位图、光标和图标文件 426
2.3.6 头文件 427
第三章 资源管理器 428
3.1 启动编辑器 429
3.2 创建新资源 429
3.3 访问现存资源 429
3.3.1 选择欲显示的资源种类 430
3.3.2 打开现存文件 430
3.3.3 编辑资源 431
3.3.4 删除资源 431
3.3.5 拷贝资源 432
3.3.6 文件备份 432
3.4 创建新文件 432
3.5 关闭文件 433
第四章 加速器编辑器 434
4.1 创建加速器 434
4.1.1 游历编辑器 434
4.1.2 编辑文本 434
4.1.3 加速表 434
4.2 头文件 436
第五章 位图、光标和图标编辑器 437
5.1 文件 437
5.1.1 位图文件 437
5.1.2 光标和图标文件 438
5.1.3 设置分辨率 438
5.2 光标和图标编辑器 439
.5.3 位图编辑器 439
5.4 使用图形编辑器 439
5.5 使用颜色 440
5.5.1 调色板 441
5.5.2 为光标和图标图象选择颜色 441
5.5.3 调整调色板 442
5.6 绘制和编辑图形 443
5.6.1 使用图形工具 443
5.7 菜单 447
5.7.1 Image菜单 447
5.7.2 Options菜单 447
5.7.3 Fools菜单 447
第六章 对话框编辑器 448
6.1 文件 448
6.1.1 头文件 448
6.2 编辑器概述 448
6.3 对话框及其控制项 448
6.3.1 带菜单的对话框 449
6.3.2 创建对话框或控制项 449
6.3.3 选择对话框或者控制项 449
6.3.4 移动对话框或控制项 450
6.3.5 修改对话框或控制项的大小 450
6.3.6 限制鼠标移动 451
6.3.7 设置对话框或控制项的属性 451
6.3.8 修改控制项的制表次序 453
6.3.9 定义逻辑控制项组 453
6.4 Tools控制板 453
6.4.1 指针工具 453
6.4.2 对话框工具 454
6.4.3 控制工具 454
6.5 对齐控制板 459
6.5.1 对齐工具 460
6.6 菜单 461
6.6.1 Dialog菜单 461
6.6.2 Controls菜单 461
6.6.3 Tools菜单 462
6.6.4 Aligment菜单 462
第七章 菜单编辑器 463
7.1 文件 463
7.2 使用编辑器 463
7.3 定义菜单文本 464
7.3.1 游历编辑器 464
7.3.2 编辑文本 464
7.3.3 定义菜单层次 465
7.3.4 修改菜单项的位置 466
7.3.5 设置激活键 467
7.3.6 在菜单文本中插入制表符 467
7.4 定义菜单字体和属性 468
7.4.1 在弹出式菜单中添加分隔行 468
7.4.2 使用选择标志 468
7.4.3 定义菜单项的字体 468
7.4.4 对齐栏中的菜单项 469
7.4.5 设置求助属性 470
7.5 菜单测试 470
第八章 串编辑器 471
8.1 定义串 471
8.1.1 域和行指示器 471
8.1.2 串表 472
8.13 游历编辑器 473
8.1.4 编辑文本 473
8.2 头文件 473
第九章 头文件编辑器 474
9.1 头文件 474
9.2 启动编辑器 474
9.2.1 创建新的头文件 475
9.2.2 打开已存在的头文件 475
9.3 使用编辑器 475
9.3 ID号 475
9.3.2 编辑符号 476
9.3.3 删除符号 477
9.3.4 移动符号 477
9.3.5 保存头文件 477
第十章 公用键及菜单 479
10.1 表编辑 479
10.2 表游历 479
10.2.1 在编辑域中打入字符 480
10.2.2 在选择域中选择选项 480
10.3 使用菜单 480
10.3.1 File菜单 481
10.3.2 Edit菜单 484
10.3.3 Header菜单 486
第十一章 故障诊断及错误信息 487
11.1 错误信息 487
11.2 内存配置 487
11.2.1 控制内存分配 488
11.2.2 使用WIN.INI控制内存分配 489
11.2.3 磁盘空间 489
11.3 控制板显示 490
11.4 切换编辑器 490
11.5 恢复磁盘空间 490