目录 1
第一章 C++基础简介 1
§1.1 系统安装与设置 1
§1.2 C++发展简况 1
§1.3 C与C++比较举例 3
§1.3.1 C程序的九大基本部件 3
§1.3.2 C程序例一 3
§1.3.3 C++程序例一 4
§1.3.4 C程序例二 5
§1.3.5 C++程序例二 8
§1.3.6 文件 9
§2.1 主窗口 13
第二章 编译器 13
§2.2 帮助 14
§2.3 举例 15
§2.3.1 小模式的设置 15
§2.3.2 创建 16
§2.3.3 保存 18
§2.3.4 编译 18
§2.3.5 语法错误 18
§2.3.6 运行 19
§2.3.7 输出窗口 20
§2.3.8 调试 20
§2.4 管理窗口 22
§2.5 多文件管理 23
§2.5.2 使用项目实用程序(Project) 24
§2.5.1 使用编辑器 24
§2.5.3 make实用程序 25
§2.6 其它菜单选项 25
§2.6.1 行恢复 26
§2.6.2 查找与查找替换 26
§2.6.3 函数定位 26
§2.6.4 剪裁和粘贴 26
§2.6.5 块操作 27
§2.6.6 改变目录 28
§2.6.7 DOS SHELL 29
§2.6.8 打印 29
§3.1 汇编器的设置 30
第三章 汇编器 30
§3.2 汇编器处理过程:例一 31
§3.2.1 编辑器中输入程序 32
§3.2.2 用TASM对源程序进行汇编 33
§3.2.3 用Tlink对程序进行连接 33
§3.3 汇编选项及切换 33
§3.4 连接选项及切换 35
§3.5 实用程序及文件 36
§3.5.1 映象文件(.map) 37
§3.5.2 列表文件(.lst) 37
§3.5.3 make实用程序 40
§3.6 汇编过程:例二 41
§3.6.1 输入例二 41
§3.6.3 汇编和连接过程 42
§3.6.2 建立一个make文件 42
§3.6.4 认识全部文件 43
§3.7 汇编模式:MASM和IDEAL模式 46
§3.8 混合模式:例三与例四 46
§3.8.1 例三的C语言程序部分 46
§3.8.2 例三的汇编语言程序部分 47
§3.8.3 结合C和汇编代码 47
§3.8.4 例四C语言程序部分 48
§3.8.5 例四汇编代码部分 48
§3.8.6 例四C和汇编语言代码的连接 49
§3.9 跟踪汇编语言错误:例五 49
§3.9.2 汇编错误报告 50
§3.9.1 捕获隐藏错误 50
§3.10 小结 52
第四章 启动调试器和性能分析器 53
§4.1 Debugger——查找 53
§4.2 Profiler——效率专家 53
§4.3 启动调试器 53
§4.3.1 进入调试器 54
§4.3.2 调试C语言程序 57
§4.3.3 调试汇编语言程序 59
§4.3.4 调试C++程序 60
§4.4 启动性能分析器 63
§4.4.1 DOS性能分析器举例 66
§4.4.2 分析一个程序 67
§5.1 什么是标识符 69
第五章 数据 69
§5.2 关键字 70
§5.3 标准C和C++的数据类型 72
§5.3.1 字符 72
§5.3.2 三种整数 73
§5.3.3 无符号(unsigned)修饰符 73
§5.3.4 浮点数 75
§5.3.5 枚举 76
§5.4 访问修饰符 78
§5.4.1 const修饰符 78
§5.4.2 #define constants 78
§5.4.4 const和volatile 79
§5.5 pascal,cdecl,near,far和huge修饰符 79
§5.4.3 volatile修饰符 79
§5.5.1 pascal修饰符 80
§5.5.2 cdecl修饰符 81
§5.5.3 cear,far和huge修饰符 81
§5.6 数据类型转换 82
§5.7 存储类别 83
§5.7.1 外部变量说明 84
§5.7.2 内部变量说明 85
§5.7.3 变量作用域小结 87
§5.7.4 外部和内部函数说明 87
§5.8 运算符 87
§5.8.1 位运算符 87
§5.8.2 左移和右移运算符 89
§5.8.3 自加和自减运算符 89
§5.8.5 赋值运算符 90
§5.8.4 算术运算符 90
§5.8.6 复合赋值运算符 91
§5.8.7 关系和逻辑运算符 91
§5.8.8 条件运算符 93
§5.8.9 逗号运算符 93
§5.9 运算符的优先级 94
§5.10 标准的C和C++库 95
第六章 流程控制 98
§6.1 条件语句 98
§6.1.1 if语句 98
§6.1.2 if_else语句 99
§6.1.3 嵌套的if_else语句 101
§6.1.4 if_else_if语句 102
§6.1.5 ?条件语句 103
§6.1.6 switch语句 104
§6.1.7 if_else_if和switch语句联合使用 110
§6.2 循环语句 111
§6.2.1 for循环 112
§6.2.2 while循环 116
§6.2.3 do_while循环 118
§6.2.4 break语句 120
§6.2.5 continue语句 121
§6.2.6 同时使用break和continue语句 122
§6.2.7 exit语句 123
§6.2.8 atexit语句 126
§7.1.1 函数原型 129
§7.1 函数的风格和原型 129
第七章 函数 129
§7.1.2 传值调用和引用调用(传地址) 131
§7.1.3 存储类和函数 133
§7.1.4 作用域 133
§7.1.5 递归函数 133
§7.2 函数参数 134
§7.2.1 函数的形参表和实参表 134
§7.2.2 使用void作函数参数 135
§7.2.3 使用字符作参数 136
§7.2.4 用整数作参数 137
§7.2.5 用浮点数作参数 137
§7.2.6 用双精度浮点数作参数 139
§7.2.7 用数组作参数 140
§7.3 函数类型 142
§7.3.1 void函数类型 142
§7.3.2 char函数类型 143
§7.3.3 int函数类型 144
§7.3.4 long函数类型 145
§7.3.5 float函数类型 146
§7.3.6 double函数类型 146
§7.4 main函数参数 147
§7.4.1 从命令行中获取串信息 148
§7.4.2 从命令行中获取整数信息 148
§7.4.3 从命令行中获取浮点数信息 150
§7.5 特殊的C++特征 151
§7.5.2 重载 152
§7.5.1 inline关键字 152
§7.6 涉及作用域的编程问题 154
§7.6.1 在C程序中未定义的符号 154
§7.5.3 使用参数个数不确定的函数 154
§7.6.2 使用带有文件作用域的变量 155
§7.6.3 用带有局部作用域的变量重载一个带有文件作用域的变量 156
§7.6.4 C++的作用域问题 157
§7.6.5 使用C++的作用域修饰符 158
第八章 数组 159
§8.1 什么是数组 159
§8.2 数组的基本特征 159
§8.3 定义数组 160
§8.4 初始化数组 160
§8.4.2 数组的显示初始化 161
§8.4.1 通过缺省值进行初始化 161
§8.4.3 未定义尺寸数组的初始化 162
§8.5 使用数组下标 162
§8.6 对数组使用sizeof函数 164
§8.7 数组边界检查 166
§8.8 数组和串 167
§8.9 多维数组 169
§8.10 数组和函数 172
§8.10.1 C语言中的数组参数 172
§8.10.2 C++中的数组参数 174
§8.11 使用数组的串函数 178
§8.11.1 gets,puts,fgets,fputs和sprintf 178
§8.11.2 strcpy,strcat,strcmp和strlen 180
第九章 指针 183
§9.1 什么是指针变量 183
§9.1.1 指针的定义 183
§9.1.2 说明指针变量 184
§9.1.3 使用指针变量 185
§9.1.4 初始化指针变量 188
§9.1.5 地址运算符的局限 188
§9.1.6 指向数组的指针 189
§9.1.7 指向指针的指针 189
§9.1.8 指向字符或字符数组的指针 191
§9.1.9 指针算术运算 192
§9.1.10 使用Turbo Debugger 193
§9.1.11 指针算术和数组 195
§9.1.12 自加和自减运算符的问题 197
§9.1.13 指针比较 197
§9.1.14 与指针有关的注意事项 198
§9.1.15 对指针运用sizeof函数 198
§9.2 函数指针 199
§9.3 动态内存分配 202
§9.3.1 动态内存分配 202
§9.3.2 空指针 205
§9.4 指针和数组 207
§9.4.1 字符数组 207
§9.4.2 指针数组 208
§9.4.3 指向指针的指针 211
§9.5 C++的引用类型(Refrence) 215
§9.5.1 返回地址 217
§9.5.2 使用Debugger 218
§9.5.3 引用类型的作用 218
第十章 C++的输入输出 220
§10.1 C++的I/O函数库 220
§10.1.1 >>和<<运算符 220
§10.1.2 一个演示程序 221
§10.2 C++的输入输出 227
§10.2.1 运算符和成员函数 227
§10.2.2 字符输出 234
§10.2.3 文件的输入输出 236
§10.2.4 文件条件状态 239
§11.1.1 结构体的语法及规则 240
第十一章 结构体、联合和混合项 240
§11.1 结构体 240
§11.1.2 建立一个简单的结构体 242
§11.1.3 结构体变量作函数参数 243
§11.1.4 建立结构体数组 245
§11.1.5 使用结构体指针 248
§11.1.6 结构体数组作函数参数 250
§11.1.7 在C++中使用结构体 252
§11.1.8 结构体的其它用法 255
§11.2 联合 257
§11.2.1 联合的语法及规则 257
§11.2.2 建立一个简单的联合 258
§11.3.1 自定义类型 259
§11.3 混合项 259
§11.3.2 枚举类型 260
§11.4 链表 261
§11.4.1 链表的组成及连接 262
§11.4.2 一个简单的链表 263
第十二章 类 266
§12.1 类的基本概念 266
§12.1.1 语法及规则 266
§12.1.2 结构体作为类 267
§12.1.3 一个简单的类 269
§12.1.4 结构体和类嵌套 271
§12.1.5 构造函数和析构函数 274
§12.1.6 重载类成员函数 278
§12.1.7 友元函数 282
§12.1.8 使用this指针 286
§12.2 运算符重载 286
§12.2.1 可以被重载的运算符和函数调用 287
§12.2.2 重载运算的格式 287
§12.3 派生类 289
§12.3.1 派生类的格式 289
§12.3.2 定义一个派生类 289
第十三章 面向对象的程序设计 294
§13.1 C++和面向对象的程序设计 294
§13.2 定义和术语 294
§13.2.1 封装 294
§13.3 开发一个面向对象的链表程序 295
§13.2.5 虚函数 295
§13.2.3 继承 295
§13.2.4 多态性 295
§13.2.2 类层次 295
§13.3.1 基类或父类 296
§13.3.2 派生类示例 296
§13.3.3 友类 298
§13.3.4 完整的链表程序 301
§13.3.5 输出示例 310
§13.3.6 Turbo Debugger信息 312
§13.3.7 剖析信息 312
第十四章 增强编程能力:开发重要的C和C++库 314
§14.1 C和C++的头文件 314
§14.2 标准库函数 315
§14.2.1 数据转换 316
§14.2.2 搜索和排序 317
§14.2.3 混合操作 319
§14.3 字符函数 322
§14.3.1 检查字母、数字和ASCII值 322
§14.3.2 检查控制、空白和标点符号等字符 323
§14.3.3 转换成ASCII、小写和大写字符 325
§14.4 内存和字符串函数 326
§14.4.1 内存函数的使用 327
§14.4.2 字符串函数 329
§14.5 数学函数 333
§14.5.1 C和C++中的数学运算 334
§14.5.2 C++的复数运算 335
§14.6 时间函数 339
第十五章 DOS系统资源与图形 345
§15.1 BIOS头文件 345
§15.2 DOS头文件 347
§15.3 图形头文件 353
§15.3.1 图形函数的调用句法 355
§15.3.2 启动图形系统 358
§15.3.3 更高级的图形函数 363
第十六章 汇编语言 371
§16.1 算术运算程序 371
§16.1.1 用立即寻址方式实现十六进制加法运算 371
§16.1.2 用直接寻址方式实现十六进制减法运算 372
§16.1.3 用直接寻址方式实现高精度的加法运算 374
§16.1.4 80486和80386系统中的加法运算 377
§16.1.5 乘法和除法指令 378
§16.1.6 计算某数的整数次方 380
§16.1.7 用简单的算法计算某数的平方根 381
§16.1.8 用指针访问并存贮数据 383
§16.2 查找表的使用 385
§16.2.1 创建查找表以计算正弦值 385
§16.2.2 不采用查找表的代码转换 387
§16.3 BIOS/DOS系统中断及16位DOS系统下的端口寻址 388
§16.3.1 用中断实现清屏 388
§16.3.2 关闭数字锁定(NUMLOCK)功能 390
§16.3.3 向扬声器端口发送信息 391
§16.3.4 在屏上显示文本 392
§16.3.5 查看80486或80386的eflag寄存器的各标记值 393
§16.3.6 用系统中断在屏中画点库 395
第十七章 增强编程能力:宏和过程 399
§17.1 宏 399
§17.1.1 宏的框架 399
§17.1.2 宏库 404
§17.2 过程 409
§17.2.1 过程的框架 409
§17.2.2 过程库 414
§17.3 目标模块库 418
§17.4.3 目标模块库的优缺点 420
§17.4.2 过程库的优缺点 420
§17.4.1 宏的优缺点 420
§17.4 宏、过程和库的对比 420
第十八章 C语言和汇编语言 422
§18.1 嵌入汇编语言的使用 422
§18.1.1 并行口连接 423
§18.1.2 L.E.D.灯 424
§18.2 编写独立的C和汇编语言模块 426
§18.3 C和汇编语言的简单连接 429
§18.4 采用C++和汇编语言的硬件接口 431
§18.5 从C向汇编语言传递数组 435
第十九章 WINDOWS和WINDOWS NT的概念 438
§19.1 什么是Windows 438
§19.2 Windows的功能 438
§19.2.2 多任务 439
§19.2.1 标准化的用户界面 439
§19.2.3 动态连接库 440
§19.3 Windows的功能 441
§19.4 Windows:概念和术语 441
§19.4.1 一个已定义的窗口 441
§19.4.2 可视界面 442
§19.4.3 窗口类 443
§19.4.4 面向对象的程序设计 443
§19.4.5 传递消息 445
§19.4.6 资源 448
§19.4.7 Windows函数的使用 448
§19.4.8 Windows.h头文件 449
§19.5 编写Windows程序的步骤 450
第二十章 编写16位的Borland C和C++的Windows 3.1应用程序 451
§20.1 采用简化Wimdows平台模板的原因 451
§20.2 编译和连接过程 452
§20.3 简化Windows平台 452
§20.3.1 C的Windows简化平台 452
§20.3.2 C++的Windows简化平台 458
§20.4 16位Windows3.1 SWP所用的重要特征 466
§20.4.1 句柄 466
§20.4.2 Windows3.1函数 466
§20.4.3 细探WinMain函数 466
§20.4.4 窗口函数 472
第二十一章 Borland资源库和资源编译器 475
§21.1 Windows资源 475
§21.2.1 创建图标、光标和位图 476
§21.2 Borland资源车间的使用 476
§21.2.2 一个定制的图标和光标 479
§21.2.3 如何创建菜单 480
§21.2.4 菜单机制 480
§21.2.5 如何用对话框来输入数据 482
§21.2.6 对话框编辑器 484
§21.3 在命令行使用资源编译器(RC) 488
§21.3.1 资源语句 488
§21.3.2 单行语句语法 488
§21.3.3 编译资源 489
§21.4 其它资源信息 490
§22.1 调色板管理器 491
第二十二章 开发Windows3.1的16位高质显示条形图程序 491
§22.2 字体在应用程序中的使用 493
§22.3 条形图 495
§22.3.1 文件barchart.mak和barchart.def 506
§22.3.2 头文件barchart.h 506
§22.3.3 资源文件barchart.rc 506
§22.3.4 程序barchart.cpp 506
§22.4 Windows Debugger的使用 510
第二十三章 Object Windows C++程序开发模板 513
§23.1 ObjectWindows的三个面向对象的功能 513
§23.1.1 抽象 513
§23.1.2 封装 513
§23.1.3 消息响应 514
§23.2 一个ObjectWindows对象 514
§23.3 成功之例:swpo.cpp 516
§23.4 模板SWPO.CPP的有关试验 522
§23.4.1 用SWPO绘制数学曲线 522
§23.4.2 用SWPO试验文本字体 523
§23.4.3 用SWPO旋转文本字体 525
第二十四章 开发带资源的C++ObjectWindows应用程序 527
§24.1 Draw25,开发一定制图标、光标、菜单及一组键盘加速键 527
§24.1.1 文件draw25.prj、draw25.def和draw25.h 527
§24.1.2 图标draw25.ico 528
§24.1.3 光标draw25.cur 529
§24.1.4 Draw25.rc(菜单和键盘加速键) 529
§24.1.5 应用程序draw25.cpp 531
§24.1.6 检查draw25应用程序 536
§24.2.1 文件pie25.prj、pie25.def和pie25.h 537
§24.2 Pie25,具有定制图标、光标、菜单和两个对话框的高质显示图形 537
§24.2.2 图标pie25.ico 538
§24.2.3 光标pie25.cur 538
§24.2.4 菜单和对话框资源文件pir25.rc 538
§24.2.5 pie25.cpp应用程序代码 541
§24.2.6 测试pie25应用程序 548
第二十五章 开发32位Wimdows NT应用程序 550
§25.1 Windows NT的不同之处 550
§25.1.1 Windows NT的数据类型和结构 550
§25.1.2 特殊句柄 551
§25.2 一个简单的应用程序:ntswp 552
第二十六章 加入资源的32位Windows NT应用程序 562
附录A 扩展ASCII表 575
附录B DOS 10H、21H和33H中断及参数 580