目 录 1
第一章Borland C++简介 1
§1.1 Borland C++的安装及环境配置 1
§1.1.1安装Boland C++ 1
§1.1.2 Borland C++的系统配置 1
§1.2 IDE介绍 3
§1.2.1 启动IDE 4
§1.2.2使用IDE的菜单和窗口 4
§1.2.4窗口系统 5
§1.2.3菜单系统 5
§1.3 C++程序 7
§1.3.1 C++程序结构 7
§1.3.2函数的说明、定义及调用 11
§1.3.3 C++程序 11
§1.3.4程序的运行 13
§1.4库函数简介 14
§1.4.1基本输入函数 14
§1.4.2基本输出函数 16
§1.4.3格式转换函数 17
§1.5.1基本概念 19
§1.5 C语言基础 19
§1.5.2基本数据类型 25
§1.5.3 C表达式和语句 29
§1.5.4类型转换 33
§1.5.5 C的宏定义 35
§1.6练习 39
§1.7小结 40
§2.1main()函数、库函数及用户自定义函数 42
§2.1.1编写main()函数 42
第二章C语言的函数 42
§2.1.2库函数的使用 44
§2.1.3可用的库函数 44
§2.1.4在程序中使用库函数 45
§2.1.5为用户自定义函数编写模型 46
§2.1.6向函数传递变元 47
§2.1.7 WinExec()函数 50
§2.2函数返回值 50
§2.2.1定义并使用函数类型 51
§2.3使用高级程序控制逻辑 53
§2.3.1循环控制语句的编写 53
§2.2.2将函数作为对象使用 53
§2.3.2 goto 54
§2.3.3 break 54
§2.3.4 continue 55
§2.3.5改变程序的执行流程 55
§2.3.6 exit()和abort() 55
§2.4存储类 57
§2.4.1确定变量作用域 57
§2.4.3确定变量的连接 58
§2.4.2确定变量的持续时间 58
§2.5使用可变的变元表 59
§2.5.1设计可变的变元表 59
§2.5.2 va_…()函数 60
§2.6练习 64
§2.7小结 64
第三章指针和导出类型 65
§3.1标准C导出类型 65
§3.1.1 C的类型模式 65
§3.1.2创建新类型 65
§3.2.1间接寻址 68
§3.2 C的指针 68
§3.2.2 C的间接及地址运算符 73
§3.2.3指向函数的指针 75
§3.2.4指向动态内存的指针 78
§3.3数组和串 85
§3.3.1数组对象的说明和使用 85
§3.3.2 C中的串 87
§3.4结构和并集 90
§3.4.1从不同类型创建结构 91
§3.4.2并集 93
§3.5练习 95
§3.6小结 96
第四章建立、编译并测试Borland C++程序 97
§4.1使用多个源文件形成一个程序 97
§4.1.1决定源文件中的内容 97
§4.1.2建立Borland C++项目文件 100
§4.2外部引用和头文件 102
§4.2.1外部引用 102
§4.2.2为外部模块编写头文件 104
§4.3使用IDE编译并运行程序 107
§4.3.1编译、运行小型程序 107
§4.4.1 Step over命令 108
§4.3.2简单的错误纠正 108
§4.4综合调试程序 108
§4.4.2 Trace into命令 109
§4.4.3设置、取消断点 110
§4.5练习 111
§4.6小结 111
第五章Borland C++I/O函数库 113
§5.1 I/O概念 113
§5.1.1文件和设备 113
§5.1.2文件和流 114
§5.1.3文本和二进制流 115
§5.2标准I/O流 116
§5.2.1格式I/O函数 116
§5.2.2字符I/O函数 125
§5.3直接文件I/O函数 128
§5.3.1直接I/O概念 128
§5.3.2读/写直接文件 129
§5.4文件定位函数 134
§5.4.1获取当前文件位置 134
§5.4.2设置新的文件位置 136
§5.5.1打开、关闭、控制文件 137
§5.5文件控制函数 137
§5.5.2控制文件缓冲区 140
§5.6处理文件I/O错误 141
§5.6.1检查文件I/O错误 141
§5.6.2显示、清除文件I/O错误 142
§5.7练习 142
§5.8小结 143
第六章C++的类与导出类 144
§6.1 比较C与C++的导出类型 144
§6.1.1 C++的“导出”概念 144
§6.1.2 C++的封装 145
§6.1.3使用struct说明类 147
§6.2说明C++的类 149
§6.2.1 class说明 151
§6.2.2使用public、private和protected关键字 165
§6.3编写类的成员函数 166
§6.3.1将成员函数与类联系起来 166
§6.3.2提供构造及解除函数 169
§6.4使用友元函数 172
§6.4.1在类中包含友元函数 172
§6.4.2确定何时使用友元函数 173
§6.6小结 174
§6.5练习 174
第七章C++类的创建与访问 176
§7.1定义C++对象 176
§7.1.1将空间类赋给类对象 176
§7.1.2定义任意持续时间的类对象 177
§7.1.3定义局部(auto)类对象 178
§7.1.4定义全局(static)类对象 185
§7.2.1使用构造函数来初始化类对象 192
§7.2初始化类对象 192
§7.2.2使用初始化表 194
§7.3作用域分解运算符 195
§7.3.1作用域分解的通常使用 195
§7.3.2使用作用域分解进行语法控制 197
§7.3.3使用作用域分解控制二义性 198
§7.4 C++作用域规则 201
§7.4.1 C++与C作用域的区别 201
§7.4.2 C++作用域规则 203
§7.5.1向对象传递信息 205
§7.5与C++类对象进行通信 205
§7.5.2 this指针 223
§7.6使用引用运算符 224
§7.6.1从地址运算符推出引用运算符 224
§7.6.2引用运算符 224
§7.7将对象作为函数参数 225
§7.7.1按值和按引用传递对象 225
§7.7.2从成员函数访问其他对象 226
§7.8指向对象的指针 227
§7.8.1何时需要指针 227
§7.8.2说明指针和对象数组 228
§7.9练习 229
§7.10 小结 230
第八章在C++中使用超载函数和运算符 231
§8.1 超载成员函数 231
§8.1.1 C++的超载 231
§8.1.2说明超载成员函数 233
§8.1.3超载类的友元函数 234
§8.1.4超载非成员函数 239
§8.2安全类型连接 240
§8.2.1函数的混乱 240
§8.2.2用标准C的Include文件控制连接问题 242
§8.3.1什么是运算符超载 244
§8.3 C++的超载运算符 244
§8.3.2说明超载运算符函数 248
§8.3.3超载单目和双目运算符 255
§8.4超越下标和函数调用运算符 256
§8.4.1超越下标运算符的使用 257
§8.4.2超载函数调用运算符的使用 261
§8.5练习 264
§8.6小结 265
§9.1.1说明构造函数和解除函数 266
第九章C++构造函数和解除函数 266
§9.1构造函数与解除函数的调用 266
§9.1.2使用构造函数初启程序 270
§9.1.3构造函数的调用 273
§9.1.4调用解除函数 278
§9.2超载构造函数 281
§9.2.1编写缺省构造函数 281
§9.2.2编写其他的构造函数 282
§9.3使用new和delete运算符 284
§9.3.1 new和delete的一般使用 284
§9.2.3确定何时需要复制构造函数 284
§9.3.2类对象的动态创建和删除 286
§9.4超载new和delete运算符 287
§9.4.1超载全局运算符 288
§9.4.2为类超载运算符 292
§9.5练习 295
§9.6小结 295
第十章使用C++的流(stream) 296
§10.1介绍C++流 296
§10.1.1 C++流和标准流的比较 296
§10.1.2使用C++流进行标准I/O操作 298
§10.2处理C++流错误 304
§10.2.1检查C++流错误状态 304
§10.2.2使用流状态成员函数 306
§10.3用C++流控制数据格式 307
§10.3.1使用〈〈和〉〉时的数据类型 307
§10.3.2重载〈〈和〉〉运算符 311
§10.4使用C++流工具符(manipalator) 313
§10.4.1理解C++工具符 313
§10.4.2使用工具符改变状态和属性 314
§10.5使用C++文件I/O流 317
§10.5.2文件定位 319
§10.5.1读和写fstream文件 319
§10.7小结 321
§10.6练习 321
第十一章使用C++派生类 322
§11.1再生不含继承的代码 322
§11.1.1理解代码的再利用 322
§11.1.2通过拼接再利用代码 322
§11.2使用单基类 326
§11.2.1理解继承 326
§11.2.2说明基类和派生类 326
§11.3.1使用动态联合和虚函数 332
§11.3使用虚函数(Virtual Function) 332
§11.3.2使用范围解析符来控制成员函数的访问 334
§11.4使用多基类 334
§11.4.1从多个基类派生出一个新类 335
§11.4.2说明和使用虚基类 336
§11.5从抽象类派生出新类 338
§11.5.1理解纯粹虚函数 338
§11.5.2实现纯粹虚函数 338
§11.6使用带继承性的构造函数和析构函数 339
§11.6.3使用虚析构函数 340
§11.6.1初始化代码不能继承 340
§11.6.2理解构造函数和析构函数调用的顺序 340
§11.7练习 342
§11.8小结 343
第十二章对象控制、效率及其发展 344
§12.1用户定义类型转换 344
§12.1.1使用构造函数来转换类型 344
§12.1.2运算符重载 345
§12.2控制对象行为和作用 348
§12.2.1使用友元函数提高效率 348
§12.2.2使用友元函数来控制对象的句子结构 349
§12.2.3使用静态存储类来避免重复说明 351
§12.2.4使用关系(reference)和指针 353
§12.2.5使用内联函数来减少函数调用次数 355
§12.3类对象控制的发展 356
§12.3.1类和函数模板 356
§12.3.2特例处理 358
§12.4练习 359
§12.5小结 359
§13.1.2功能对话框 361
§13.1.1启动WinSpector工具 361
第十三章Windows程序工具 361
§13.1 WinSpector工具 361
§13.1.3对日志文件的说明 363
§13.2 WinSight工具 376
§13.2.1如何启动WinSight 376
§13.2.2选择View 376
§13.2.3使用窗口树 377
§13.2.4对类的操作 379
§13.2.5选择所要跟踪的消息 379
§13.3.1调试初步知识 381
§13.3 Windows下的快速调试器(Turbo Debugger) 381
§13.3.2使用Turbo Debugger 383
§13.3.3运用先进的调试功能 385
§13.4练习 386
§13.5小结 386
第十四章Borland C++下的Windows编程 387
§14.1应用程序开发者的好处 387
§14.2理解Windows编程环境 388
§14.2.1 Windows是一个多任务的环境 388
§14.2.2 Windows是一个面向对象的环境 389
§14.3Windows资源 396
§14.3.1 Windows资源的类型 396
§14.3.2资源文件的类型 397
§14.4利用资源 398
§14.5例程fcwin.c需要的资源 398
§14.6利用Borland的资源生成器建立FCWIN的资源 402
§14.7练习 405
§14.8 小结 405
§15.1应用程序fcwin.c的设计 407
第十五章Windows应用程序设计 407
§15.2创建Windows应用程序文件 435
§15.2.1熟悉Windows程序设计环境 435
§15.2.2建立模块定义文件 436
§15.2.3设计程序的头文件 437
§15.2.4建立工程文件 439
§15.3练习 439
§15.4小结 440
第十六章用Borland C++编写Windows应用程序 441
§16.1怎样设计Windows接口 441
§16.2.1 了解动态链接库 459
§16.2使用动态链接库 459
§16.2.2编写一个DLL应用程序 460
§16.3练习 464
§16.4小结 464
第十七章OLE 2.0的C++程序设计 465
§17.1 OLE程序设计基础 465
§17.1.1 OCF,OWL和OLE 465
§17.1.2 OLE应用程序类型 465
§17.2.1 OWL客户应用程序编写准备 467
§17.2编写第一个OWL客户应用程序 467
§17.2.2运行OLECONT1应用程序 474
§17.2.3 OLECONT1程序设计 476
§17.3 OLE程序的动态菜单设计 485
§17.3.1动态菜单编程基础 485
§17.3.2一个完整程序:如何使用动态菜单 488
§17.3.3 MDI应用程序的动态菜单技术 491
§17.3.4建立OLE客户应用程序的菜单 499
§17.4 OLE复合文档的装入与保存 517
§17.4.1运行OLECONT3应用程序 530
§17.4.2处理Save或As命令 530
§17.4.3保存OLE文件 533
§17.4.4处理Open命令 534
§17.4.5处理New命令 535
第十八章使用ObjectWindows Library 536
§18.1 ObjectWindows层次结构 536
§18.1.1模块类和应用类 536
§18.1.2窗口类 536
§18.1.3文档类和视类 537
§18.1.4控制类 538
§18.1.5对话框类 550
§18.1.6图形类 553
§18.1.7打印类 554
§18.1.8其他杂类 554
§18.2响应Windows消息 554
§18.3最小的OWL应用程序 555
§18.4一个简单的交互式的Windows应用程序 558
§18.5文本编辑应用程序 560
§18.6练习 573
§18.7 小结 573
附录A代数类的程序 574
附录B建立DOS应用程序 586