第一章 OOP简介 1
1.1 OOP的优点 1
1.2 软件需求 1
1.3 本书适用对象 1
1.4 应如何学会OOP 1
1.5 结构化语言的问题 2
1.6 OOP的概述 4
1.7 OOP与C++的关系 5
第二章 运行简单的OOP程序 6
2.1 Visual C++系统 6
2.2 编辑、编译、链接与运行程序 7
2.3 一些简单的C++程序 12
2.4 真正的OOP程序实例 14
2.5 C++语言结构 15
2.6 一个不太好的OOP程序 16
第三章 C++语言基本数据处理概念 17
3.1 变量名称 17
3.2 变量的声明方式 18
3.3 基本数据类型 19
3.4 常数的表达方式 21
3.5 基本算术运算 23
3.6 类型转换 25
3.7 C++语言的特殊表达式 26
3.8 习题 28
第四章 基本输入与输出 29
4.1 printf() 29
4.2 scanf() 29
4.3 为什么OOP程序不使用printf()和scanf() 39
4.4 OOP程序特有的输出cout() 40
4.5 OOP特有的输入 52
4.6 综合应用 53
4.7 习题 61
第五章 程序的流程控制 62
5.1 关系操作符与逻辑操作符 62
5.2 for语句 64
5.3 while语句 72
5.4 do...while语句 79
5.5 if语句 82
5.6 else if语句 90
5.7 e1?e2:e3特殊表达式 93
5.8 switch语句 94
5.9 break语句 97
5.10 continue语句 99
5.11 goto语句 101
5.12 习题 102
第六章 用户自定义数据类型 104
6.1 typedef 104
6.2 结构数据类型 105
6.3 嵌套结构 117
6.4 几个有关结构的实例 121
6.5 联合(union) 125
6.6 枚举(num) 127
6.7 习题 132
第七章 函数的应用 133
7.1 函数的定义 135
7.2 主程序和函数的位置 137
7.3 函数的返回值 141
7.4 结构数据与函数 144
7.5 地址的传送 147
7.6 初始化函数参数值 153
7.7 函数重载 155
7.8 递归式函数调用 157
7.9 inline操作符 159
7.10 习题 161
第八章 变量的存储类 162
8.1 auto 162
8.2 static 164
8.3 external 166
8.4 外部函数与地址操作符& 169
8.5 register 170
8.6 作用域操作符 170
8.7 习题 171
第九章 类与对象 174
9.1 类的定义 174
9.2 对象 176
9.3 构造函数和析构函数 181
9.4 在构造函数内传递参数 185
9.5 函数重载与类 188
9.6 函数重载与构造函数 189
9.7 对象作为成员函数的参数 191
9.8 对象作为成员函数的返回值 193
9.9 类和结构的关系 196
9.10 再谈inline函数 197
9.11 浅谈类、对象与内存 199
9.12 静态类数据 200
9.13 综合应用 202
9.14 习题 209
第十章 数组与字符串 211
10.1 一维数组 211
10.2 一维数组初值的设置 216
10.3 二维数组 218
10.4 二维数组初值的设置 220
10.5 函数内数组数据的传递 222
10.6 结构数据与数组 226
10.7 在对象内声明数组元素 227
10.8 对象数组 233
10.9 字符串的基本应用 236
10.10 gets()和puts()函数 243
10.11 cin读取字符串的技巧 246
10.12 C++语言的常用字符串处理函数 249
10.13 字符串数组 252
10.14 字符串与类的实例 253
10.15 综合应用 255
10.16 习题 261
第十一章 操作符重载 263
11.1 单目操作符重载 263
11.2 含返回值的操作符重载 268
11.3 双目操作符重载 272
11.4 比较操作符重载 282
11.5 设置特殊操作符的重载 286
11.6 不同数据类型的转换 290
11.7 不同类类型的转换 295
11.8 等号操作符重载 300
11.9 综合应用 303
11.10 习题 307
第十二章 类继承 308
12.1 类继承的目的 309
12.2 构造函数与派生类 315
12.3 函数重载、基类与派生类 320
12.4 多重派生类的概念 324
12.5 多层派生类的概念 330
12.6 某个类继承多个类的概念 333
12.7 类内含类的应用 340
12.8 私有派生类 343
12.9 私有数据的派生 345
12.10 不明调用基类的函数 349
12.11 综合应用 353
12.12 习题 358
第十三章 指针 359
13.1 指针的基本概念 359
13.2 指针与函数 369
13.3 指针与数组 371
13.4 指针与字符串 380
13.5 指向指针的指针 384
13.6 指针与结构 390
13.7 内存管理(new和dalete) 391
13.8 指针与类 395
13.9 指针、构造函数和析构函数 397
13.10 指针与对象数组 398
13.11 综合应用(堆栈、队列与二元树) 405
13.12 习题 419
第十四章 DOS应用程序设计 421
14.1 时间延迟概念 421
14.2 控制键盘按键函数_kbhit() 425
14.3 文本方式的屏幕控制 427
14.4 存取文本方式下的屏幕 439
14.5 识别键盘码 448
14.6 综合应用 451
14.7 习题 458
第十五章 虚拟函数与多态 460
15.1 指针与派生类 460
15.2 基本虚拟函数概念 464
15.3 虚拟函数的基本使用目的 470
15.4 纯虚拟函数 474
15.5 虚拟基类 476
15.6 综合应用 479
15.7 习题 483
第十六章 OOP的杂项说明 485
16.1 友元函数 485
16.2 友元函数与程序的语义 487
16.3 友元函数与操作符重载 489
16.4 友元类 492
16.5 静态类成员 494
16.6 this关键字 497
16.7 综合应用 500
16.8 习题 504
第十七章 I/O流与文件管理 505
17.1 流的类结构 505
17.2 再谈设备操作符 506
17.3 简单ostream成员函数的应用 510
17.4 简单istream成员函数的应用 510
17.5 文件管理 515
17.6 命令行参数 529
17.7 DOS的设备文件名 531
17.8 设计〈〈与〉〉操作符重载函数 533
17.9 综合应用 537
17.10 习题 539
第十八章 Microsoft类函数库(MFC) 541
18.1 建立适用于DOS的类函数库文件 541
18.2 注意设置事项 542
18.3 CString类 543
18.4 CTime类 545
18.5 CTimeSpan类 548
18.6 CByteArray类 549
18.7 CWordArray类 551
18.8 CStringArray类 552
18.9 CStringList类 554
18.10 CObList类 557
18.11 CMapStringToOb类 560
18.12 CMapStringToString类 561
18.13 习题 563
第十九章 计算机绘图 564
19.1 图形方式的设置 564
19.2 lineto() 565
19.3 moveto() 565
19.4 ellipse() 569
19.5 rectangle() 571
19.6 pie() 572
19.7 floodfill() 574
19.8 颜色的设置 575
19.9 图样的设计 578
19.10 动画的设计……(581)19.11 字符串输出 588
19.12 综合应用 588
19.13 习题 595
第二十章 鼠标的控制 597
20.1 功能0 597
20.2 功能1 598
20.3 功能2 599
20.4 功能3 600
20.5 功能4 605
20.6 功能5 607
20.7 功能6 610
20.8 功能7 613
20.9 功能8 615
20.10 功能10 617
20.11 功能11 622
20.12 功能15 623
20.13 习题 624
第二十一章 游戏专辑 625
21.1 “洪锦魁”演示程序 625
21.2 猜“洪锦魁” 641
21.3 习题 653
第二十二章 Quick Win应用程序设计 654
22.1 一个简单的Quick Win程序 654
22.2 一个简单的绘图程序 655
22.3 _wabout() 656
22.4 不同类型的窗口 657
22.5 习题 659
附录A 关键字与函数索引 660
附录B IBM PC ASCII码表 663