引言 1
本书的服务对象 1
本书的内容组织 1
本书的配套磁盘 1
第一部分面向对象程序设计入门 1
目录 1
第1章C++透视 2
1.1 C的起源:出现于70年代 2
1.1.1 B语言: B与C的比较 2
1.1.4大型库:是否越大越好 3
1.2 80年代的双轨发展 3
1.2.1 ANSI C:标准化的重要性 3
1.1.3 C对安全性关注不够 3
1.1.2 C的缺点:是否等级太低 3
1.2.2 Cox的Objective C 4
1.2.3 Stroustrup的“带有类的C” 4
1.2.4 C++发展的第一阶段:cfront 4
1.3 C++:一种被充实的C 5
1.3.1引用和指针的比较 5
1.3.2 void和void*数据类型 6
1.4 const直的品行 7
1.4.1 volatile类型 7
1.4.2通用指针 8
1.4.3混用const和指针:小心行事 9
1.4.4用const来说明过程参数 10
1.5函数重载:名字相同,变元不同 11
1.6创建内联子例程 11
1.7.1将省略号用于可变变元 13
1.8链接说明和增强兼容 13
1.7类型安全链接:解决错误链接问题 13
1.9使用内存分配运算符 15
第2章OOP综述 17
2.1类即是对象蓝图 17
2.2调用成员函数 17
2.3面向对象的主要工具 19
2.4设计一个文件观察程序 21
2.5用继承建立类家族 22
2.6什么是“是一种”? 23
2.7用抽象来隐藏细节 25
2.8用多态性建立一致的界面 26
2.9重实效的面向对象设计 27
2.9.1构造类 27
2.9.2用模板复制代码 28
2.9.3使用友元 29
2.11 DOS文件观察程序源码 30
2.10面向对象设计指南 30
第3章对象和类 40
3.1动作!成员函数 40
3.1.1高效的内联成员函数 43
3.1.2恒定的常量成员函数 44
3.1.3 volatile成员函数 45
3.1.4多态性和虚成员函数 45
3.1.5静态成员 47
3.2伴随着构造函数和析构函数的诞生与消亡 49
3.2.1初始化成员 51
3.2.2缺省构造函数 52
3.2.3用备份构造函数控制备份 53
3.2.4用变换构造函数来变换类型 54
3.25结尾:析构函数 54
3.3使用运算符函数这种更好的记号 55
3.3.1类成员运算符函数 56
3.3.2独立的运算符函数 59
3.3.3选择变元类型和返回类型 60
3.3.4特殊的运算符函数的细节 61
3.4用模板繁衍代码 64
3.5结构、类和指向它们的指针 69
3.5.1 C与C++的结构标记 69
3.5.2 C++的结构与类 70
3.5.3指向类 70
第4章继承 72
4.1派生类 72
4.1.1公用派生:是一种(is a)关系 73
4.1.2私有和保护派生,由……构成关系 75
4.1.3虚函数:允许多态性 75
4.1.4纯虚函数:允许抽象类 77
4.1.5使用基类构造函数 79
4.2多继承 80
4.2.1虚基类 83
4.2.2强制转换与虚基类 84
4.2.3构造函数与虚基类 85
第二部分Borland贮存器类 87
第5章Borland类库 87
5.1用Precondictions和Checks进行调试 87
5.2 Borland的string类 89
5.3对象类与BIDS类 94
5.4 BIDS贮存器类 95
5.4.1介绍BIDS的ADT 96
5.4.2间接贮存器 99
5.4.3 BIDS数组 100
5.4.4 BIDS的袋子和集合 105
5.4.5 BIDS堆栈 109
5.4.6 BIDS队列 112
5.5日期和时间 112
第6章使用和扩展类库 115
6.1创建L-system图形 115
6.1.1初探LSystem类 118
6.1.2改善LSystem类 123
6.2建造一个优先级队列 132
第7章Iostream类库 139
7.1文本流 139
7.2插入 140
7.3提取 144
7.4操纵算子 148
第三部分Turbo Vision类库 152
8.1 Turbo Vision的宗旨和艺术 153
第8章Turbo Vision辅导 153
8.2 TVNull应用程序 154
8.3生成菜单——TVMenu程序 158
8.4消息和消息处理器 162
8.5设置状态行 167
8.6上下文敏感状态行 169
第9章Turbo Vision技术 175
9.1创建对话框 175
9.1.1Turbo Vision坐标 175
9.1.2启动一个对话——考察TVDialog 176
9.1.3管理对话框数据 183
9.1.4设计对话框布局 185
9.2从TDialog派生对话类 186
9.2.1 TGiftDialog类 196
9.2.2 TDynamicText类 197
9.3调色板 198
9.4.1组织TView应用程序 200
9.4打开窗口和视图 200
9.4.2 uses关系 201
9.4.3 draw()例程 206
9.5活动视图 207
第10章Turbo Vision的组件 213
10.1现成的Cancel和OK按钮 213
10.2 AB输入行 214
10.3初始化控制 216
10.4 File Open家族 217
10.4.1对话内部的File_Open 218
10.4.2对话内部的三次或四次File_Open 220
10.5 StdDialog的源代码 223
10.6建立一个Lo-Res位置控制 227
10.6.2 handleEvent成员 232
10.6.1 draw()函数 232
第四部分对象窗口类库 234
第11章OWL应用程序框架 235
11.1 Windows方式 235
11.1.1事件驱动编程 236
11.1.2使用资源 237
11.1.3传统的Windows工具和组织 238
11.2 OWL方式 241
11.3 Resource Workshop 242
11.4 OWL的Bedrock类 243
11.4.1 TApplication类 243
11.4.2 TWindowsObject类 244
11.4.3 TWindow类 244
11.4.4 TDialog类 244
11.5 Find Files阶段0:规划一个OWL应用程序 245
11.6 Find Files阶段1:打开主窗口 247
11.6.1 为OWL开发调谐BCW 250
11.6.2阶段1源代码 251
11.7 Find Files阶段2:增加一个图符 252
11.7.1理解资源文件 252
11.7.2注册一个窗口类 254
11.7.3阶段2源代码 256
11.8 Find Files阶段3:增加一个菜单和键盘加速器 259
11.8.1菜单资源 260
11.8.2连接一个菜单到窗口 261
11.8.3消息处理器 262
11.8.4键盘加速器 265
11.8.5阶段3源代码 267
第12章OWL对话框 272
12.1 Find Files阶段4:增加对话 273
12.1.1 模块化和非模块化对话 273
12.1.2使用Resource Workshop在一个对话中插入控制 273
12.1.3简单对话框 275
12.1.4传送缓冲区 276
12.1.5 TBySizeDialog框类 278
12.1.6阶段4源代码 281
第13章汇编OWL应用程序 296
13.1 Find Files阶段5:组合在一起 296
13.1.1取消一个受计算限制的任务 296
13.1.2保持消息循环卷动 298
13.1.3在非模块化对话里显示文件状态 300
13.1.4增加TTreeSearch类 302
13.1.5 阶段5源代码 303
13.2 Find Files阶段5B:Borland定制的控制 321
13.2.1转换到Borland Windows定制控制 322
13.2.2阶段5B源代码 324
13.3 Find Files阶段N:改进 330
14.1.1图形设备界面 332
第14章窗口涂色 332
14.1 Blake阶段1:窗口涂色 332
14.1.2设备上下文 333
14.1.3 GDI坐标系 336
14.1.4 WM_PAINT消息 339
14.1.5 OWL的Paint()过程 340
14.1.6 Blake应用程序概述 341
14.1.7 Blake阶段1 Paint()函数 342
14.1.8阶段1源代码 344
14.2 Blake阶段2:使用GDI对象 350
14.2.1 GDI字体 354
14.2.2 GDI笔和刷子 355
14.2.3 Blake阶段2的字体菜单 355
14.2.4 Blake阶段2的Paint()函数 357
14.2.5阶段2源代码 361
14.3.1 OWL的TScroller类 368
14.3 Blake阶段3:卷动窗口 368
14.3.2为Blake增加卷动功能 369
14.3.3卷动的键盘界面 371
14.3.4阶段3源代码 371
14.4 Blake阶段4:在窗口里使用鼠标 379
14.4.1 使用鼠标 379
14.4.2灵巧的卷动 382
14.4.3 Blake阶段4的Paint()函数 383
14.4.4阶段4源代码 384
第15章 OWL和多重文件界面 396
15.1 MDI行为 396
15.2 MDI组件 399
15.3 TMDIFrame类 401
15.3.1 从TMDIFrame派生类 401
15.3.2实现Window菜单选项 401
15.3.3 创建MDI子窗口 403
15.4 Duet MDI应用程序 404
15.4.1 Duet的图符 404
15.4.2 创建子窗口 405
15.4.3 菜单管理 405
15.4.4 SetMenu()过程 408
15.4.5 MDI命令消息传递 410
15.4.6 TBoxWindow和TLineWindow类的Paint() 411
15.4.7 Duet源代码 412
第16章Windows L-system 427
16.1 L-system应用程序的组织 427
16.2 L-system应用程序 432
16.3一个Windows的L-system类 437
16.4 一个L-system窗口类 440
16.4.1处理菜单选项 449
16.4.2 TLsysWindow的Paint() 450
16.5 L-systems对话 455
16.5.1 Settings对话 455
16.5.2 Graphing对话 459
16.5.3 Drawing对话 463
16.5.4 Title对话 465
16.6文件对话 466
16.6.1 File Open对话 466
16.6.2 File Save和File Save As对话 467
16.6.3读和写L-system参数 468
16.7处理类似菜单选项 470
16.8 L-system应用程序资源 471
16.9扩充L-system应用程序 478
附录A搜索文件 480
附录B构造函数和虚基类 489
附录C磁盘上有些什么 490