《Borland C++ 3.0程序员指南》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:徐颖,谢德刚编译
  • 出 版 社:北京:海洋出版社
  • 出版年份:1992
  • ISBN:7502726098
  • 页数:305 页
图书介绍:

0.1 本书的内容 1

0.2 规范定义介绍 1

简介 1

0.2.1 语法与术语 2

1.1.1 用\续行 3

1.1 空白符 3

第一章 词法 3

1.1.2.4 注释分界符及空白符 4

1.1.2.3 C++注释 4

1.1.2 注释 4

1.1.2.1 C注释 4

1.1.2.2 嵌套注释 4

1.2.1 关键字 5

1.2 单词符号 5

1.2.2.3 唯一性和作用域 7

1.2.2.2 标识符及其大小写 7

1.2.2 标识符 7

1.2.2.1 命名和长度限制 7

1.2.3 常量 8

1.2.3.1 整型常量 9

1.2.3.2 字符常量 10

1.2.3.3 浮点常量 12

1.2.3.4 文字串 14

1.2.3.5 常量及其内部表示 15

1.2.3.6 常量表达式 16

1.2.4.4 逗号 17

1.2.4.3 花括号 17

1.2.4 分隔符 17

1.2.4.1 方括号 17

1.2.4.2 圆括号 17

1.2.4.7 省略号 18

1.2.4.6 冒号 18

1.2.4.5 分号 18

1.2.4.10 #号(预处理伪指令) 19

1.2.4.9 等号(初始化符号) 19

1.2.4.8 星号(指针声明) 19

2.1.2 左值(Lvalues) 20

2.1.1 对象 20

第二章 语言结构 20

2.1 声明 20

2.1.4.4 文件作用域 21

2.1.4.3 函数原型作用域 21

2.1.2.1 右值 21

2.1.3 类型和存贮类 21

2.1.4 作用域 21

2.1.4.1 块作用域 21

2.1.4.2 函数作用域 21

2.1.6 生存期 22

2.1.5 可见性 22

2.1.4.5 类作用域(C++) 22

2.1.4.6 作用域和名空间 22

2.1.7 翻译单元 23

2.1.6.3 动态生存期 23

2.1.6.1 静态生存期 23

2.1.6.2 局部生存期 23

2.1.8.1 名变换 24

2.1.8 连接 24

2.2.2 可能的声明 25

2.2.1 临时定义 25

2.2 声明语法 25

2.2.3 外部声明和定义 29

2.2.5 类型分类 31

2.2.4 类型说明符 31

2.2.6.1 整型 32

2.2.6 基类型 32

2.2.5.1 void类型 32

2.2.6.3 标准转换 33

2.2.6.2 浮点类型 33

2.2.7 初始化 34

2.2.6.4 特殊的char、int和enum间的转换 34

2.2.7.1 数组、结构与联合 35

2.2.9.3 存储类说明符register的使用 36

2.2.9.2 存储类说明符extern的使用 36

2.2.8 简单声明 36

2.2.9 存储类说明符 36

2.2.9.1 存储类说明符auto的使用 36

2.2.10 修饰符 37

2.2.9.5 存储类说明符typedef的使用 37

2.2.9.4 存储类说明符static的使用 37

2.2.10.1 const修饰符 38

2.2.10.3 volatile修饰符 39

2.2.10.2 interrupt函数修饰符 39

2.2.10.4 cdecl与pascal修饰符 40

2.2.11 复杂声明与声明符 41

2.2.10.6 数类型修饰符 41

2.2.10.5 指针修饰符 41

2.3.3 指针声明 43

2.3.2 指向函数的指针 43

2.3 指针 43

2.3.1 指向对象的指针 43

2.3.4 指针与常量 44

2.3.6 指针转换 45

2.3.5 指针算术运算 45

2.5.1 声明与定义 46

2.5 数 46

2.3.7 C++引用声明 46

2.4 数组 46

2.5.2 声明与原型 47

2.5.3 定义 48

2.6 结构 49

2.5.5 函数调用和参数转换 49

2.5.4 形参声明 49

2.6.3 结构与函数 50

2.6.2 结构成员声明 50

2.6.1 无标结构与typedef 50

2.6.4 结构成员存取 51

2.6.6 结构名空间 52

2.6.5 结构字对齐 52

2.6.8 位字段 53

2.6.7 不完整声明 53

2.7 联合 54

2.8 枚举 55

2.7.2 联合声明 55

2.7.1 无名联合(仅C++) 55

2.9 表达式 57

2.9.2 计算顺序 61

2.9.1 表达式与C++ 61

2.11 运算符描述 62

2.10 运算符语义 62

2.9.3 出错与溢出 62

2.11.2.6 赋值算符 63

2.11.2.5 逻辑算符 63

2.11.1 单目运算符 63

2.11.2 二目运算符 63

2.11.2.1 加法类算符 63

2.11.2.2 乘法类算符 63

2.11.2.3 移位算符 63

2.11.2.4 按位算符 63

2.11.3.1 数组下标运算符[] 64

2.11.3 后缀和前缀运算符 64

2.11.2.7 关系算符 64

2.11.2.8 相等算符 64

2.11.2.9 成员选择算符 64

2.11.2.10 类成员算符 64

2.11.2.11 条件算符 64

2.11.2.12 逗号算符 64

2.11.4.1 前缀增量运算符 65

2.11.4 增量和减量运算符 65

2.11.3.2 函数调用操作符() 65

2.11.3.3 结构/联合成员运算符.(圆点) 65

2.11.3.4 结构/联合指针运算符-> 65

2.11.3.5 后缀增量运算符++ 65

2.11.3.6 后缀减量运算符-- 65

2.11.5.3 单目加运算符+ 66

2.11.5.2 间接引用运算符* 66

2.11.4.2 前缀减量运算符 66

2.11.5 单目运算符 66

2.11.5.1 取地址运算& 66

2.11.7 乘法类运算符 67

2.11.6 sizeof运算符 67

2.11.5.4 单目减运算符- 67

2.11.5.5 按位补运算符~ 67

2.11.5.6 逻辑非运算符! 67

2.11.9 按位移位运算符 68

2.11.8.2 减法运算符 68

2.11.8 加法类运算符 68

2.11.8.1 加法运算符+ 68

2.11.10.2 大于运算符> 69

2.11.10.1 小于运算符< 69

2.11.9.1 按位移位运算符(<<和>>) 69

2.11.10 关系运算符 69

2.11.11.2 不等于运算符!= 70

2.11.11.1 等于运算符== 70

2.11.10.3 小于等于运算符<= 70

2.11.10.4 大于等于运算符>= 70

2.11.11 相等类运算符 70

2.11.15 逻辑与运算符&& 71

2.11.14 按位同或运算符| 71

2.11.12 按位与运算符& 71

2.11.13 按位异或运算符^ 71

2.11.17 条件运算符?: 72

2.11.16 逻辑或运算符|| 72

2.11.19 逗号运算符 73

2.11.18.2 复合赋值运算符 73

2.11.18 赋值运算符 73

2.11.18.1 简单赋值运算符= 73

2.12 语句 74

2.11.20 C++运算符 74

2.12.4.1 if语句 76

2.12.4 选择语句 76

2.12.1 块 76

2.12.2 标号语句 76

2.12.3 表达式语句 76

2.12.5.1 While语句 77

2.12.5 循环语句 77

2.12.4.2 switch语句 77

2.12.5.3 for语句 78

2.12.5.2 do while语句 78

2.12.6.4 return语句 79

2.12.6.3 goto语句 79

2.12.6 跳转语句 79

2.12.6.1 break语句 79

2.12.6.2 continue语句 79

3.1.2 引用参数 81

3.1.1 简单引用 81

第三章 C++特性 81

3.1 引用 81

3.2 作用域访问运算符 82

3.3.1 错误处理 83

3.3 new与delete运算符 83

3.3.5 带new运算符的初始值 84

3.3.4 ::operator new 84

3.3.2 带数组的运算符new 84

3.3.3 带数组的运算符delete 84

3.4.3 类名作用域 85

3.4.2 类类型 85

3.4 类 85

3.4.1 类名 85

3.4.7 关键字this 86

4.3.6 成员函数 86

3.4.4 类对象 86

3.4.5 类成员表 86

3.4.9 静态成员 87

3.4.8 内部函数 87

3.4.10 成员作用域 88

3.4.10.1 嵌套类型 89

3.4.10.2 成员访问控制 90

3.4.11 基类与派生类存取 91

3.5 虚基类 92

3.6 类的友元 93

3.7 构造函数与析构函数 94

3.8.1 默认构造函数 95

3.8 构造函数 95

3.8.3 构造函数的重载 96

3.8.2 拷贝构造函数 96

3.8.4 构造函数的调用次序 97

3.8.5 类初始化 98

3.9 析构函数 100

3.9.4 abort与析构函数 101

3.9.3 exit与析构函数 101

3.9.1 析构函数的调用 101

3.9.2 atexit、#pragma exit与析构函数 101

3.9.5 虚析构函数 102

3.10 重载运算符 103

3.11.2 重载new和delete 104

3.11.1 重载运算符与继承 104

3.11 运算符函数 104

3.11.3 重载单目运算符 105

3.11.7 重载下标运算符 106

3.11.6 重载函数调用运算符() 106

3.11.4 重载二目运算符 106

3.11.5 重载赋值运算符= 106

3.12 虚函数 107

3.11.8 重载类成员存取运算符 107

3.13 抽象类 108

3.14.3 C++作用域规则小结 109

3.14.2 隐藏 109

3.14 C++作用域 109

3.14.1 类作用域 109

3.15 模板 110

3.15.1 函数模板 111

3.15.1.2 隐式的和显式的模板函数 112

3.15.1.1 重设模板函数 112

3.15.2 类模板 113

3.15.2.3 类型安全的类属类 114

3.15.2.2 尖括号 114

3.15.2.1 参数 114

3.15.2.4 消去指针 115

3.15.3.1 使用模板开关 116

3.15.3 模板编译开关 116

第四章 预处理器 118

4.2.1 简单的#define宏 120

4.2 #define与#undef指令 120

4.1 空指令# 120

4.2.2 #undef指令 121

4.2.6 带参数的宏 122

4.2.5 关键字与保护字 122

4.2.3 -D与-U选择 122

4.2.4 定义选择 122

4.3 文件包含指令#include 124

4.4.1 #if、#elif、#else、和#endif条件指令 125

4.4 条件编译 125

4.3.1 〈头文件名〉形式的头文件搜索 125

4.3.2 “头文件名”形式的头文件搜索 125

4.4.2 #ifdef和#ifndef条件指令 126

4.4.1.1 操作符defined 126

4.5 #line行控制指令 127

4.7 #pragma指令 128

4.6 #error指令 128

4.7.2 #pragma exit与#pragma startup 129

4.7.1 #pragma argsused 129

4.7.7 #pragma option 130

4.7.6 #pragma intrinsic 130

4.7.3 #pragma hdrfile 130

4.7.4 #pragma hdrstop 130

4.7.5 #pragma inline 130

4.7.9 #pragma warn 131

4.7.8 #pragma saveregs 131

4.8.5 _ _DATE_ _ 132

4.8.4 _ _CPLUSPLUS 132

4.8 预定义的宏 132

4.8.1 _ _BCPLUSPLUS_ _ 132

4.8.2 _ _BORLANDC_ _ 132

4.8.3 _ _CDECL_ _ 132

4.8.14 _ _TEMPLATES_ _ 133

4.8.13 _ _TCPLUSPLUS_ _ 133

4.8.6 _ _DLL_ _ 133

4.8.7 _ _FILE_ _ 133

4.8.8 _ _LINE_ _ 133

4.8.9 _ _MSDOS_ _ 133

4.8.10 _ _OVERLAY_ _ 133

4.8.11 _ _PASCAL_ _ 133

4.8.12 _ _STDC_ _ 133

4.8.17 _Windows 134

4.8.16 _ _TURBOC_ _ 134

4.8.15 _ _TIME_ _ 134

5.2.2 ios类 135

5.2.1 streambuf类 135

第五章 使用C++流 135

5.1 什么是流? 135

5.2 iostream库 135

5.3 输出 136

5.3.2 输出格式 137

5.3.1 基本的类型 137

5.3.3 操纵符 138

5.3.4 填充与补空 139

5.5 用户定义类型的I/O 140

5.4 输入 140

5.6 简单文件I/O 141

5.7 串流处理 142

5.8 屏幕输出流 143

5.9.1.1 成员函数 145

5.9.1 conbuf 145

5.9 流类参考 145

5.9.3.1 成员函数 146

5.9.3 filebuf 146

5.9.2 constream 146

5.9.2.1 成员函数 146

5.9.5 fstreambase 147

5.9.4 成员函数 147

5.9.4 fstream 147

5.9.7 ios 148

5.9.6.1 成员函数 148

5.9.5.1 成员函数 148

5.9.6 ifstream 148

5.9.7.2 成员函数 149

5.9.7.1 数据成员 149

5.9.9 iostream_withassign 150

5.9.8 iostream 150

5.9.10.1 成员函数 151

5.9.10 istream 151

5.9.9.1 成员函数 151

5.9.14 ostream 152

5.9.13.1 成员函数 152

5.9.11 istream_withassign 152

5.9.11.1 成员函数 152

5.9.12 istrstream 152

5.9.13 ofstream 152

5.9.17 streambuf 153

5.9.16.1 成员函数 153

5.9.14.1 成员函数 153

5.9.15 ostream_withassign 153

5.9.15.1 成员函数 153

5.9.16 ostrstream 153

5.9.17.1 成员函数 154

5.9.18.1 成员函数 155

5.9.18 strstreambase 155

5.9.20.1 成员函数 156

5.9.20 strstream 156

5.9.19 strstreambuf 156

5.9.19.1 成员函数 156

6.1 与2.0比有哪些变化? 157

第六章 container类库 157

6.3 Container基本概念 158

6.2 为何设置两种类库? 158

6.3.2.2 Sortable类 160

6.3.2.1 Error类 160

6.3.0.1 基于对象类其它类 160

6.3.1 类分类 160

6.3.2 Non-container类 160

6.3.4 Container和所有权 161

6.3.3 Container类 161

6.3.2.3 Association类 161

6.3.5 Container lterators 162

6.3.7.1 无序集合 163

6.3.7 Collections 163

6.3.6 Sequence class 163

6.4.2 Container实现 164

6.4.1 模板、类和容器 164

6.3.7.2 有序集合 164

6.4 BIDS模板库 164

6.4.3.2 类模板 165

6.4.3.1 ADT和FDS 165

6.4.3 模板解决方法 165

6.4.4 Container类兼容性 168

6.4.6 调节应用 169

6.4.5 头文件 169

6.4.7 FDS的实现 170

6.4.8 ADT的实现 173

6.5.3 LIB目录 177

6.5.2 SOURCE目录 177

6.5 类库目录 177

6.5.1 INCLUDE目录 177

6.6 先决条件和检查 178

6.5.4 EXAMPLES目录 178

6.7.1.1 数据成员 179

6.7.1 AbstractArray[抽象数组] 179

6.7 Container类参考 179

6.7.1.2 成员函数 180

6.7.2.1 例子 181

6.7.2 Array 181

6.7.1.3 友元 181

6.7.2.2 成员函数 182

6.7.4 Association 183

6.7.3.1 成员函数 183

6.7.3 Arraylterator 183

6.7.4.2 例子 184

6.7.4.1 成员函数 184

6.7.5.1 成员函数 185

6.7.5 Bag 185

6.7.6.1 成员函数 187

6.7.6 BaseDate 187

6.7.7.1 成员函数 188

6.7.7 BaseTime 188

6.7.8.1 成员函数 189

6.7.8 Btree 189

6.7.9.1 成员函数 190

6.7.9 Btreelterator 190

6.7.8.2 友元 190

6.7.10.1 成员函数 191

6.7.10 Collection 191

6.7.11 Container 192

6.7.11.1 成员函数 193

6.7.12.1 成员函数 194

6.7.12 Containerlterator 194

6.7.11.2 友元 194

6.7.14 Deque 195

6.7.13.1 成员函数 195

6.7.13 Date 195

6.7.14.1 例子 196

6.7.15 Dictionary 197

6.7.14.2 成员函数 197

6.7.16.1 成员函数 198

6.7.16 DoubleList 198

6.7.15.1 成员函数 198

6.7.17.1 成员函数 199

6.7.17 DoubleListlterator 199

6.7.16.2 友元 199

6.7.18.1 成员函数 200

6.7.18 Error 200

6.7.19.1 成员函数 201

6.7.19 HashTable 201

6.7.20.1 成员函数 202

6.7.20 HashTablelterator 202

6.7.19.2 友元 202

6.7.21.2 友元 203

6.7.21.1 成员函数 203

6.7.21 List 203

6.7.23 MemBlocks 204

6.7.22.1 成员函数 204

6.7.22 Listlterator 204

6.7.25 Object 205

6.7.24 MemStack 205

6.7.25.1 成员函数 206

6.7.25.1 Data member[数据成员] 206

6.7.25.4 相关函数 207

6.7.25.3 友元 207

6.7.26.1 成员函数 208

6.7.26 PriorityQueue 208

6.7.27.1 例子 209

6.7.27 Queue 209

6.7.28.1 成员函数 210

6.7.28 Set 210

6.7.27.2 成员函数 210

6.7.29 Sortable 211

6.7.29.2 相关函数 212

6.7.29.1 成员函数 212

6.7.31.1 例子 213

6.7.31 Stack 213

6.7.30 SortedArray 213

6.7.31.2 成员函数 214

6.7.32.2 例子 215

6.7.32.1 成员函数 215

6.7.32 String 215

6.7.33.1 成员函数 216

6.7.33 Time 216

6.7.34.1 成员函数 217

6.7.34 Timer 217

6.7.35.1 成员函数 218

6.7.35 TShouldDelete 218

7.1.1 .h和.LIB文件的路径 219

7.1 环境与工具 219

第七章 从Microsoft C的转换 219

7.1.3 命令行编译器 220

7.1.2 MAKE 220

7.1.5 链接器 226

7.1.4 命令行选项和库 226

7.2.1 MSC宏 228

7.2 原码级兼容性 228

7.2.4 关键字 229

7.2.3 内存模式 229

7.2.2 头文件 229

7.3 转换提示 230

7.2.6 值返回结构 230

7.2.5 浮点返回值 230

第八章 构造Windows应用程序 231

8.1.3 编译和连接WHELLO 232

8.1.2 理解模块定义文件 232

8.1 在IDE中编译和连接 232

8.1.1 理解资源文件 232

8.1.3.2 设置编译和连接选项 233

8.1.3.1 使用项目管理器 233

8.3.1 从命令行进行编译 234

8.3 从命令行编译和连接 234

8.2 WinMain 234

8.3.3 使用制作文件(makefile) 235

8.3.2 从命令行进行连接 235

8.3.3.1 对Windows的另一个制作文件 236

8.4.3 Windows Smart Callbacks(-WS) 237

8.4.2 Windows Explicit Functions Exported(-WE) 237

8.4 入口和出口 237

8.4.1 Windows ALL Functions Exportable(-W)。 237

8.4.7 入口、出口与输出:小结 238

8.4.6 export关键字 238

8.4.4 Windows DLL Functions Exportable(-WD) 238

8.4.5 Windows DLL Explicit Functions Exported(-WDE) 238

8.6 模块定义文件 239

8.5 内存模式 239

8.6.1 一个简单例子 240

8.7.2.1 连接程序选项 241

8.7.2 用TLINK来连接 241

8.7 Windows程序的连接 241

8.7.1 在IDE中连接 241

8.7.2.3 为动态连接库连接.OBJ文件和.LIB文件 242

8.7.2.2 连接.OBJ和.LIB文件 242

8.8.1 在IDE中编译和连接 243

8.8 动态连接库 243

8.8.3.1 LibMain和WEP 244

8.8.3 创建动态连接库(DLL) 244

8.8.2 从命令行编译连接DLL 244

8.8.2.1 模块定义文件 244

8.8.2.2 输入库 244

8.8.3.2 指针与内存 245

8.8.3.3 C++类与指针 246

9.2.1 8086寄存器 248

9.2 内存模式 248

第九章 DOS存贮管理 248

9.1 内存上溢出错 248

9.2.1.3 专用寄存器 249

9.2.1.2 段寄存器 249

9.2.1.1 通用寄存器 249

9.2.2 内存段 250

9.2.1.4 标志寄存器 250

9.2.3 指针 251

9.2.2.1 计算地址 251

9.2.3.3 Huge指针 252

9.2.3.2 Far指针 252

9.2.3.1 Near指针 252

9.2.4 六种内存模式 253

9.3 混合模式编程:地址修改 257

9.3.1 段指针 257

9.3.2 声明far对象 258

9.3.3 声明函数为near或far 258

9.3.4 声明指针为near、far或huge型 259

9.3.4.1 指向一给定segment offset地址 260

9.3.5 使用库文件 260

9.3.6 连接混合模式 260

9.4 DOS的覆盖(VROOMM) 261

9.4.1 覆盖的工作过程 261

9.4.1.1 Borland C++覆盖的最佳使用 263

9.4.2 要求 263

9.4.3.2 IDE中的覆盖 264

9.4.4 覆盖程序 264

9.4.4.1 far调用要求 264

9.4.3.1 覆盖的例子 264

9.4.3 使用覆盖 264

94.4.4 调试覆盖 265

9.4.4.3 不能覆盖的模块 265

9.4.4.5 覆盖中的外部例程 265

9.4.4.2 缓冲区大小 265

94.5.1 扩展内存 266

9.4.5.2 扩充内存 266

9.4.5 调动 266

10.1.2 使用80×87代码 268

10.1.1 仿真80×87芯片 268

10.1.3 无浮点代码 268

10.1.4 快速浮点选项 268

10.1 浮点选项 268

第十章 数学运算 268

10.1.6 寄存器和80×87 269

10.1.7 消除浮点异常 269

10.1.5 87环境变量 269

10.2 使用复数运算 270

10.2.1 运用BCD运算 271

10.2.1.1 BCD数的转换 271

10.2.1.2 十进制数 272

11.2 窗口和视区概述 273

11.1 视频方式概述 273

11.2.1 什么是窗口? 273

第十一章 视频函数 273

11.3.1 控制台I/O函数 274

11.3 在文本方式下编程 274

11.3.1.1 文本输出和操作 274

11.2.3 坐标 274

11.2.2 什么是视区? 274

11.3.1.2 窗口和方式控制 275

11.3.1.3 属性控制 275

11.3.2 文本窗口 276

11.3.1.5 光标形状 276

11.3.2.1 一个例子 276

11.3.1.4 状态询问 276

11.3.3 文本方式类型 277

11.3.4 文本颜色 278

11.4 图形方式编程 279

11.4.1 图形库函数 279

11.3.5 高性能输出 279

11.4.1.1 图形系统控制 280

11.4.1.2 详细说明 281

11.4.1.3 画图和填充 281

11.4.1.4 处理屏幕和视区 282

11.4.1.5 图形方式下的文本输出 283

11.4.1.6 颜色控制 284

11.4.1.8 背景色和制图颜色 285

11.4.1.9 CGA的颜色控制 285

11.4.1.7 像素和调色板 285

11.4.1.10 对CGA和VGA的彩色控制 287

11.4.1.11 图形方式下的错误处理 287

11.4.1.12 状态询问函数 288

12.1.1 BASM 290

12.1 内部汇编语言 290

12.1.2 内部汇编法 290

第十二章 BASM与内部汇编 290

12.1.3 操作码 292

12.1.3.2 前缀 293

12.1.3.3 转移指令 293

12.1.3.1 串指令 293

12.1.4.2 内部汇编、偏移量和大小替换 294

12.1.4.1 内部汇编和寄存器变量 294

12.1.5 使用C结构成员 294

12.1.4 内部汇编对数据或函数的引用 294

12.1.3.4 汇编伪指令 294

12.1.6 使用转移指令和标号 295

12.2 中断函数 296

12.3 使用低级服务程序 296

附录A ANSI实现标准 299