目 录
第1章 Visual C++ 2008编程概述 1
1.1 编程的基本概念 1
1.1.1 编程的发展历程 1
1.1.2 为何会存在如此多的
编程语言 3
1.1.3 开发环境 4
1.2 了解C++语言 4
1.2.1 C++的诞生 4
1.2.2 面向对象编程 5
1.2.3 C++与Java和C#的关系 6
1.3 使用Visual C++ 2008编程 7
1.3.1 了解Windows编程 7
1.3.2 熟悉开发环境 8
1.3.3 编写控制台应用程序 9
1.3.4 编写MFC应用程序 15
本章小结 16
习题 17
第2章 变量、数据和计算 18
2.1 C++的程序结构 18
2.1.1 程序注释 18
2.1.2 #include指令——头文件 19
2.1.3 命令空间和using声明 19
2.1.4 main()函数 20
2.1.5 程序语句 21
2.2 C++的基本数据类型 22
2.2.1 整型数据 23
2.2.2 字符型数据 24
2.2.3 浮点型数据 24
2.2.4 布尔型数据 25
2.3 字面值 25
2.4 变量 26
2.4.1 变量的命名规则 27
2.4.2 变量的声明和初始化 27
2.5 C++中的计算 28
2.5.1 算术运算 29
2.5.2 关系运算和逻辑运算 29
2.5.3 赋值运算 31
2.5.4 运算的优先级 32
2.5.5 变量间的类型转换 33
2.5.6 变量的生存时间及作用域 35
本章小结 38
习题 38
第3章 流程控制 40
3.1 分支 40
3.1.1 在什么情况下使用
分支结构 40
3.1.2 if语句 41
3.1.3 嵌套的if语句 43
3.1.4 switch语句 44
3.1.5 条件运算符 46
3.2 循环 47
3.2.1 do-while循环 47
3.2.2 while循环 48
3.2.3 for循环 49
3.2.4 无限循环 50
3.2.5 循环的中断 51
本章小结 52
习题 52
第4章 数组、字符串和指针 54
4.1 数组 54
4.1.1 数组的声明和初始化 54
4.1.2 二维数组 56
4.2 字符串和字符串数组 58
4.2.1 字符串及其处理 58
4.2.2 字符串数组 61
4.3 指针 62
4.3.1 指针的基本概念 62
4.3.2 指针的声明和初始化 62
4.3.3 指针的运算 63
4.3.4 指针和数组 65
4.4 关于动态内存分配 68
4.4.1 了解自由存储器 68
4.4.2 为数组动态分配内存 69
本章小结 71
习题 71
第5章 函数及其详解 73
5.1 函数简介 73
5.1.1 函数的工作过程 73
5.1.2 函数的结构 74
5.1.3 使用函数 75
5.2 给函数传递实参 77
5.2.1 按值传递 78
5.2.2 按引用传递 80
5.2.3 main()函数的实参 82
5.2.4 接收数量不定的函数实参 83
5.3 从函数返回值 84
5.3.1 返回指针 84
5.3.2 返回引用 86
5.3.3 函数中的静态变量 87
5.4 递归函数的调用 88
5.5 函数重载 89
5.5.1 函数重载的概念 90
5.5.2 函数重载和多义性 92
5.6 函数指针 92
5.6.1 声明函数指针 93
5.6.2 函数指针作为参数 94
5.6.3 函数指针数组 95
5.7 函数模板 96
5.8 初始化函数形参 97
5.9 异常 99
5.10 处理内存分配错误 101
本章小结 102
习题 103
第6章 类和结构 104
6.1 C++中的结构 104
6.1.1 定义并初始化结构 104
6.1.2 访问结构的成员 105
6.1.3 使用指针处理结构 106
6.2 类 108
6.2.1 定义类 109
6.2.2 声明类的对象 110
6.2.3 访问类的数据成员 110
6.2.4 类的成员函数 111
6.2.5 内联函数 112
6.3 类的构造函数 113
6.3.1 构造函数的概念 113
6.3.2 在类定义中指定默认的
形参值 115
6.3.3 在构造函数中使用初
始化列表 116
6.4 类的私有成员 116
6.4.1 访问私有类成员 118
6.4.2 类的友元函数 119
6.4.3 默认复制构造函数 120
6.5 this指针 121
6.6 类的const对象 123
6.6.1 类的const成员函数 123
6.6.2 类外部的成员函数定义 123
6.7 类对象的数组 124
6.8 类对象的指针和引用 125
6.8.1 类对象的指针 126
6.8.2 类对象的引用 127
6.9 类的静态成员 129
本章小结 130
习题 131
第7章 深入理解类 132
7.1 类的析构函数 132
7.1.1 默认的析构函数 132
7.1.2 析构函数与动态内存分配 134
7.2 实现复制构造函数 136
7.3 运算符重载 138
7.3.1 实现重载的运算符 138
7.3.2 重载赋值运算符 141
7.3.3 重载加法运算符 144
7.3.4 重载递增和递减运算符 146
7.4 类模板 147
7.4.1 定义类模板 147
7.4.2 根据类模板创建对象 149
7.4.3 使用多个形参的类模板 151
7.5 字符串进阶 152
7.5.1 创建字符串对象 152
7.5.2 连接字符串 153
7.5.3 访问与修改字符串 154
7.5.4 比较字符串 157
7.5.5 搜索字符串 157
本章小结 161
习题 162
第8章 继承和虚函数 163
8.1 类的继承 163
8.2 继承下的访问控制 167
8.2.1 派生类中构造
函数的操作 167
8.2.2 声明类的保护成员 169
8.2.3 继承类成员的访问级别 170
8.3 派生类中的复制构造函数 171
8.4 友元类成员 174
8.5 虚函数 175
8.5.1 使用指向类对象的指针 177
8.5.2 使用引用处理虚函数 177
8.5.3 纯虚函数 177
8.5.4 抽象类 178
8.5.5 间接基类 180
8.5.6 虚析构函数 181
8.6 类类型之间的强制转换 183
8.7 关于嵌套类 184
8.8 关于标准模板库 186
8.8.1 为什么需要学习STL 186
8.8.2 STL的组成 186
本章小结 187
习题 188
第9章 Windows编程概述 190
9.1 Windows编程的基本概念 190
9.1.1 理解窗口元素 190
9.1.2 Windows程序与
操作系统 192
9.1.3 事件驱动型程序 192
9.1.4 Windows消息 192
9.1.5 Windows API 192
9.1.6 Windows数据类型 193
9.1.7 Windows程序中的
变量名前缀 194
9.2 Windows程序的结构 194
9.2.1 WinMain()函数 195
9.2.2 WindowProc()函数 204
9.3 Windows程序的组织 207
本章小结 210
习题 210
第10章 使用MFC编写Windows
程序 211
10.1 MFC概述 211
10.1.1 MFC标记法 211
10.1.2 MFC程序的组织方式 212
10.2 MFC的文档/视图概念 215
10.2.1 文档的概念 215
10.2.2 视图的概念 215
10.2.3 连接文档和视图 216
10.2.4 基于MFC的Windows
应用程序 217
10.3 创建MFC应用程序 218
10.3.1 创建SDI应用程序 219
10.3.2 MFC应用程序向导的
输出结果 222
10.3.3 编译并运行程序 227
10.3.4 程序的工作原理 228
10.3.5 创建MDI应用程序 229
本章小结 231
习题 231
第11章 处理菜单和工具栏 232
11.1 与Windows通信 232
11.1.1 消息映射 232
11.1.2 消息类别 235
11.1.3 处理程序中的消息 235
11.2 扩展Sketcher程序 236
11.2.1 创建和编辑菜单 236
11.2.2 为菜单消息添加
处理程序 239
11.2.3 添加工具栏按钮 247
本章小结 249
习题 250
第12章 在窗口中绘图 251
12.1 窗口绘图的基础知识 251
12.1.1 窗口客户区 251
12.1.2 Windows图形
设备接口 252
12.2 Visual C++的绘图机制 254
12.2.1 应用程序中的视图类 254
12.2.2 CDC类详解 255
12.3 对鼠标进行编程 260
12.3.1 鼠标发出的消息 262
12.3.2 鼠标消息处理程序 262
12.3.3 使用鼠标绘图 263
12.3.4 运行Sketcher程序 279
本章小结 281
习题 281
第13章 对话框和标准控件编程 282
13.1 理解对话框和控件 282
13.2 对话框编程 283
13.2.1 创建对话框资源 283
13.2.2 添加对话框类 284
13.2.3 显示和关闭对话框 286
13.2.4 处理对话框中的控件 287
13.2.5 使对话框有效 289
13.3 使用微调按钮控件 291
13.3.1 添加“缩放”菜单项
和相应工具栏按钮 292
13.3.2 创建微调按钮 292
13.3.3 生成对话框类 293
13.3.4 显示微调按钮 295
13.4 使用比例系数 296
13.4.1 可缩放的映射模式 296
13.4.2 设置文档大小 297
13.4.3 设置映射模式 297
13.4.4 同时实现滚动与缩放 299
13.5 使用状态栏 300
13.6 使用列表框 303
13.7 使用编辑框控件 305
本章小结 306
习题 306
第14章 实训 307
14.1 C++程序设计基础 307
14.1.1 赋值语句 307
14.1.2 类型转换 308
14.1.3 预处理、const和
sizeof 309
14.1.4 动态内存传递 311
14.1.5 递归 313
14.1.6 内螺旋递增序列 314
14.1.7 链表的操作 316
14.2 面向对象编程 319
14.2.1 类和结构 319
14.2.2 成员变量 320
14.2.3 复制构造函数 322
14.2.4 虚函数继承 323
14.3 Visual C++编程 324
14.3.1 带图标的程序菜单 325
14.3.2 带动画效果的状态栏 329
14.3.3 不规则按钮 330
14.3.4 绘制正弦曲线 332
第15章 存储和打印文档 334
(http://www.tupwk.com.cn/GZGZ)
15.1 串行化及其应用 334
15.1.1 文档类定义中
的串行化 335
15.1.2 文档类实现中
的串行化 335
15.1.3 基于CObject的
类的功能 337
15.1.4 串行化的工作方式 338
15.1.5 应用串行化 339
15.2 打印文档 344
15.2.1 打印的过程 344
15.2.2 获取文档的尺寸 347
15.2.3 存储打印数据 348
15.2.4 准备打印 348
15.2.5 打印后的清除 350
15.2.6 准备设备环境 350
15.2.7 打印文档 351
本章小结 354
习题 354
附录A 程序调试 355
(http://www.tupwk.com.cn/GZGZ)
A.1 理解调试 355
A.2 基本的调试技术 357
A.2.1 设置断点 358
A.2.2 进入中断模式 359
A.2.3 跟踪变量的值 360
A.2.4 单步执行程序 360
A.2.5 调用堆栈 361
A.2.6 设置跟踪点 361
A.3 添加调试代码 362
A.3.1 调用堆栈 366
A.3.2 单步执行到出错位置 368
附录B C++关键字 371
(http://www.tupwk.com.cn/GZGZ)