第一章 Visual C++包装盒内容 3
好的东西往往来自于小的包装盒 3
第一部分 Visual C++概述 3
编译程序产生许多程序 4
飞跃发展障碍的维纳斯(Venus):调试程序 4
对话框、菜单、位图 5
2-4-6-8,我们怎样集中起来 5
建立在一个强大的结构之上 5
不必在这些库上花费过度的精力 6
麦克斯韦灵活的应用程序 6
用与环境有关的正确方法去获取信息 7
程序例子帮你开始 8
有足够的空间吗? 9
第二章 安装Visual C++2.0 9
讨厌的版本 9
开始安装程序 10
确定用户名称的三项记录 10
典型安装(或如何快速填充磁盘) 11
最小安装 11
骨架安装(需要光盘) 12
个人用户安装 12
“不太使用或根本不用MFC”的安装 12
一点也不需要MFC 13
“不做任何数据库编程”的安装 13
“不需要麦克斯韦灵活应用软件”的安装 13
但是等等!改变主意了! 14
准备好了,开始! 14
“不要程序范例”的安装 14
“不需要联机图书”的安装 14
如果没有安装怎么办 15
第三章 Windows程序的实质 17
到了发挥Visual C++能力的时候了 17
可能会问自己,我怎么到了这儿 17
一个不说片名的新片预映 18
我们开始看Wizard 19
简单地挥一下神秘的魔杖 19
我的手中掌握着整个世界 22
我需要一个具有吸引力的标题! 23
我希望它会做点什么! 23
让编码开始 24
程序喜欢我们,我们该运行了 25
继续做什么,做多久? 26
出了错该怎么做? 27
如果不停的编译该怎么办? 27
AppWizard产生的所有文件是什么? 28
把Nohands放在我这儿 30
第四章 被ClassWizard所陶醉 31
召唤另一个Wizard 31
Wizards始终在Class的顶端 32
将友好地改变About Box 33
一个新的对话框 36
给定对话框一个类 37
需要更多的蔬菜吗?增加新的菜单项 38
最后会晤:挂起New Dialog Box 39
总结刚做的事情 41
再来一个!再来一个!再一次运行 41
第五章 目标 43
为何麻烦 43
一个温和的目标文件是令人愉快的 44
建立一个新的目标 44
有关新目标的特殊细节 44
为目标增加文件 45
在目标窗口可做普通工作 46
找出谁在依靠你 47
文件扩展名快速指南 48
第六章 编辑器 51
适合所有程序的编辑 51
编辑过程的主角 52
充满活力的色彩显示 53
再单击一次鼠标 54
寻找就会发现 55
不要小看正规表达式匹配 56
重复击键 56
第七章 编译 59
只编译一次就通过是比较难的 59
语法错误 60
警告 61
如果编译器知道有错误,它为什么不能修正它 61
如果一开始没有成功,就再编译、建立、重建 61
第八章 调试程序 63
语法错误与逻辑错误的区别是什么? 63
调试过程的概略介绍 64
以逻辑错误的名义停下来 65
你叫什么名字?谁是你的调试程序?它象我吗? 65
我们一步步走向外婆的房子 66
警惕大的错误 67
可以改变不好的变量值 67
开发和深入 67
快点儿?没问题! 67
去掉生活中的错误 68
开始调试 68
一大堆错误 69
程序员,停下来,那是什么声音?每个人都看到这里有很多错误 70
我们还在那儿吗 72
清除一个断点,一个监视窗口 73
它运行了! 73
再来一次 73
仍有错误 73
调试程序说明 74
调试程序的续篇 75
第九章 购买?还是浏览 77
定义和参考:不需字典 77
浏览器种类 79
将浏览器放在可以得到的地方 79
想让我浏览一下文件?! 79
浏览体系族树 82
缩小查找范围 83
别疯狂地走开——离开就行了 84
有时会不工作了 84
一次改变一个文件 85
第十章 考虑所有的任选项 85
任选项 85
给我两个任选项,我将改变你的世界 87
友好的环境 88
定制工具条,让它早晨叫我 89
第二部分 关于C++的使用 93
第十一章 了解程序 93
编程要从主程序开始,不断深入 94
利用库文件 94
如何利用程序解决问题? 95
阅读自动电唱机(Jukebox)程序 96
第十二章 面向对象式编程法 99
如何用面向对象式编程法进行编程? 99
压缩(encapsulation) 101
这就是面向对象式编程的全部优点吗? 101
继承(inheritance) 102
多同性(Polymorphism) 102
第十三章 分体式编程 105
在源文件中放入什么? 106
从最基本的程序入手 106
如何用C++实现打印输出 107
换行表示法 108
关于Cin 109
注释 109
库文件 110
如何编写打印“hello World”的程序 111
用Visual C++设计程序 111
变量类型 115
第十四章 数据类型 115
基本数据类型 116
其它数据类型 117
输入数据要谨慎 117
常量 119
音乐实例 119
第十五章 变量 121
命名变量 121
定义变量 123
变量初始化 123
第十六章 结构 125
结构的描述 125
结构嵌套 127
结构成员的使用 127
结构在程序中的应用128 128
结构的广泛使用 129
第十七章 表达式 131
运算符(Operator) 131
高级运算符 132
++运算符 133
>>运算符 133
<<运算符 134
布尔表达式(Boolean Expression) 134
赋值 136
复杂表达式 137
运算符的独立性 137
位(Bit) 138
if条件语句 140
运算符的运算顺序 141
运算符实例 142
第十八章 C++的流程语句 143
if、for和while条件语句 143
if语句 144
for语句 145
while语句 148
求数的阶乘 148
Switch,do语句 149
Switch语句 149
do 语句 150
goto语句 151
程序编写顺序 153
第十九章 自动电唱机应用程序 153
自动电唱机程序清单 155
第二十章 函数 159
开放式语句 159
函数的定义和调用 160
自变量 160
返回函数值 162
Factorial程序 163
如何阅读含有函数的程序 165
变量和名称范围 166
直接调用(Inlining) 166
信息的存储 166
递归函数 167
直接调用(Inlining) 167
省略号在函数中的使用 169
缺省初始值 170
第二十一章 指针 171
指针的含义 172
指针的用途 172
指针中包含两个值 173
不命名的指针 173
指针实例 173
C++中如何使用指针 175
指针的地址 175
撤消参考指针 176
撤消参考指针实例 176
改变指针所指的值 177
程序清单 177
在结构中改变数值 178
指针的简明表示法 178
指针中的New 178
不要丢失存储器中的地址 179
链表实例 180
如何编写程序 180
程序清单 181
释放存储器 183
删除后指针设为0 183
GP错误 183
字符串与指针 185
避免使用void pointers 186
本章小节 187
关于指针的提示 187
第二十二章 用指针编写自动电唱机应用程序 189
如何在Jukebox程序中加入指针 189
改善后的Jukebox程序清单 191
第二十三章 数组 195
如何使用枚举 195
使用枚举时的安全性 196
cin与枚举 196
数组 197
数组元素 198
数组初始化 198
字符串数组 199
多维数组 199
关于多维数组的使用方法 200
多维数组的描述 200
第二十四章 用数组编写自动电唱机应用程序 203
Jukebox程序的变化 203
Jukebox程序中使用了数组 203
程序中的其它变化 204
程序清单 205
第二十五章 程序中的作用域和变量 209
作用域的严密性 210
作用域规则 211
作用域的作用 212
堆栈 212
第三部分 面向对象式编程 217
第二十六章 类 217
定义类 218
成员函数 218
数据成员 218
数据成员与成员函数 218
类的读取权限 219
类的读取保护 219
如何建立只读变量 220
成员函数的定义 220
如何使用类 221
类成员的读取 221
从成员函数中读取成员 222
类的前期设计 222
用面向对象法思考音乐 222
本章小结 224
构造程序的使用 227
第二十七章 构造程序和解除程序 227
多重构造程序 228
构造程序中的自变量 229
专用与公用构造程序 230
解除程序 230
清除自身的混乱 231
清除动态事物 231
类的嵌套 231
如何阅读面向对象式程序 233
第二十八章 面向对象式Jukebox程序 235
Jukebox程序中的类 235
新旧Jukebox程序的比较 238
新Jukebox程序中的链表 239
面向对象式Jukebox程序清单 240
程序的流程 240
第二十九章 继承 249
可重复使用的类 249
继承的方法 250
类中的专用、公用和保护项 250
类的超越 251
利用原有的程序进行开发 251
继承的独一无二的优势 252
如何在基本类中调用构造程序 253
构造程序与解除程序的调用顺序 254
指针与派生类 254
继承与读取权限 255
第三十章 虚拟函数 257
如何表示需要一个虚拟函数 258
虚拟函数的描述 259
使用虚拟函数的好处 260
程序清单 261
父类的一些约定 263
第三十一章 供编程用的样本 265
为什么要使用样本 265
样本的描述 267
定义样本中的成员函数 267
使用样本类 268
样本类中使用指针的规定 268
新类型的定义 269
在头文件中装入样本 269
样本式链表程序 269
程序清单 272
第三十二章 自动电唱机程序的扩展 275
如何阅读包含多个文件的程序 275
变化后的自动电唱机程序 276
FancyJukebox类 276
PreviewSonglist类 278
在链表中混合目标 279
在头文件中存放类的描述 280
程序清单 281
文件中的五种情况 286
第三十三章 流 295
文件的读取 295
关闭和打开文件 296
数字与文字读取例子 297
程序清单 298
流中使用的特殊符号 300
填充字符与width成员函数 300
关于流的其它介绍 300
第三十四章 异常处理 301
处理错误的老办法 301
处理错误的新方法 302
异常处理 302
异常处理的例子 303
异常处理的中间名称 304
指出异常 305
异常处理的语法 306
使用类处理异常 308
异常类的例子 309
错误处理类的继承 311
异常处理的五点规定 312
第三十五章 自动电唱机程序中的流和异常处理 313
文件的输入 313
程序的执行情况 314
使用流从磁盘中读歌曲选择 314
异常处理的使用 315
程序清单 316
第三十六章 过载 325
过载成员函数 325
过载预定义函数 326
过载运算符的警告 327
过载运算符 327
类的内部与外部过载 328
是否在类中对运算符进行过载操作 329
过载运算符的注意事项 331
从朋友中得到帮助 331
朋友的含义 331
如何在程序中使用朋友 332
第三十七章 过载Jukebox 333
程序的工作过程 333
程序清单 335
结束语 339
安装CD盘损坏 343
没有足够的磁盘空间 343
安装到错误的驱动器 343
第四部分 Visual C++常见的错误 343
第三十八章 安装Visual C++失败的五个原因 343
无法访问磁盘(CD) 344
安装程序的冲突 344
第三十九章 无法运行的解决办法 345
用旧版本的Visual C++代替新版本 345
改变Visual C++的程序文件夹 345
删除一些文件 346
得到关于无足够资源的信息 346
无法运行 346
发生GP错误 346
第四十章 七条严重的语法错误 347
包含路径错误 347
丢失; 347
忘记更新类描述 348
忘记包含头文件 348
用类名代替变量名 349
类描述后面忘记写; 349
在类中忘记public: 349
使用错误的变量名 350
错把.使用成—> 350
错把—>使用成. 351
丢失} 351
忘记注解结束符 352
使用错误的变量类型 352
向函数传递错误的数据类型 353
C语言程序没有错误,但不能编译 353
没有写void 353
在#define后写入; 354
在头文件中忘记定义模型成员函数 354
没有使用公用构造函数 354
忘记建立一个Project文件 355
磁盘空间不足 355
事物的混乱 355
第四十一章 Undo(撤销指令) 357
解除错误操作 357
误操作 357
误存盘 357
超出屏幕 357
第四十二章 程序错误的修改方法 359
忘记给变量初始化 359
使用空指针 360
用=代替== 360
坏指针 361
忘记撤销指针 361
忘记分配内存空间 362
超出分配的内存空间 362
不要忽视错误警告 363
在switch中缺少break语句 363
忘记在循环体中增加计数 364
在循环体中改变增值变量 365
循环中的错误边界 365
使用错误变量 366
数组的边界错误 367
在范围以外改变变量或改变全局变量 368
在CWnd构造程序中改变窗口状态 368
[x.y]不是[x][y] 368
向窗口传递了错误的参数 369
文件中的错误Date和Time 370
第四十三章 十个最新的MFC类 371
CWinApp 371
CWnd 372
CDialog 372
CMDIFrameWnd 372
CToolBar 372
CDialogBar 372
CStatusBar 372
CPen 373
CBitmap 373
CDC 373
第四十四章 十个最新的MFC成员函数 375
InitInstance 375
Create 375
DoModal 375
MoveWindow 375
OnCreate 376
EnableDocking 376
OnPaint 376
MoveTo 376
LineTo 376
TextOut 376
第四十五章 十个Visual C++实例程序 377
词汇表 379