第1章 C++程序的基本组成 1
1.1程序设计概述 1
1.2 C++程序设计语言的发展 2
1.3面向过程的程序设计 2
1.4程序开发的过程 4
1.5 C++程序的基本组成 5
习题1 7
第2章 C++的数据类型、运算符和表达式 8
2.1 C++的关键字与标识符 8
2.1.1 C++的字符集 8
2.1.2 C++的关键字 8
2.1.3 C++的标识符 8
2.2 C++的基本数据类型 9
2.3常量 10
2.3.1数值常量 10
2.3.2字符常量 11
2.3.3字符串常量 12
2.3.4常量的定义 13
2.4变量 13
2.4.1变量的定义 13
2.4.2变量的赋值与初始化 14
2.5基本运算符 14
2.6表达式 18
习题2 24
第3章 数据的输入与输出 26
3.1 printf与scanf 26
3.1.1格式输出函数printf 26
3.1.2格式输入函数scanf 28
3.2 I/O流控制 29
3.2.1 cin 29
3.2.2 cout 30
3.2.3格式控制 31
习题3 35
第4章 C++的控制语句 37
4.1 C++语言的语句 37
4.1.1 C++语句的基本形式 37
4.1.2块语句 38
4.2选择语句 38
4.2.1 if语句 38
4.2.2 if-else语句 39
4.2.3 if语句的嵌套 39
4.2.4三元条件表达式 41
4.2.5 switch语句 41
4.3循环语句 43
4.3.1 while语句 44
4.3.2 do.while语句 46
4.3.3 for语句 46
4.4循环的中断 49
4.4.1 break语句 49
4.4.2 continue语句 49
4.4.3 exit和abort函数 50
4.5 goto语句 51
习题4 52
第5章 数组及其使用 56
5.1一维数组 56
5.1.1一维数组的定义 56
5.1.2一维数组的初始化 57
5.1.3一维数组的访问 58
5.2二维数组 59
5.2.1二维数组的定义与初始化 59
5.2.2二维数组的访问 60
5.3字符数组与字符串 60
5.3.1字符串存储 61
5.3.2字符串处理函数 61
5.4数组使用举例 64
5.4.1排序 64
5.4.2约瑟夫问题 66
习题5 68
第6章 函数 70
6.1函数定义与函数调用 70
6.1.1函数的定义 70
6.1.2函数的类型和返回值 73
6.1.3形式参数与实际参数 74
6.1.4函数的调用 74
6.1.5函数的参数传递 77
6.1.6函数原型与函数声明 78
6.2变量的作用域与存储类型 79
6.2.1全局变量与局部变量 79
6.2.2作用域与可见性 82
6.3变量的存储类型与生存期 84
6.3.1变量的存储类型 84
6.3.2生命期 88
6.4函数的递归调用 89
6.5函数重载 92
6.6默认参数值的函数 93
6.7内联函数 94
6.8系统函数 95
习题6 96
第7章 指针 97
7.1指针概述 97
7.1.1指针与地址 97
7.1.2指针变量 97
7.1.3指针运算 98
7.1.4指针赋值 100
7.1.5指针做函数参数 101
7.2指针与数组 103
7.2.1指针与一维数组 103
7.2.2指针与二维数组 106
7.3指针与字符串 112
7.3.1指向指针的指针 114
7.3.2指针数组做main函数的参数 115
7.4指针与函数 116
7.4.1指针作为函数参数 116
7.4.2函数的返回值是指针(指针函数) 117
7.4.3指向函数的指针(函数指针) 119
7.5小结 121
7.5.1有关指针的数据类型 121
7.5.2指针的运算 122
习题7 123
第8章 引用 124
8.1引用的含义 124
8.2引用与指针的区别 125
8.3引用的应用 125
8.3.1引用作为函数参数 125
8.3.2引用作为函数的返回值 127
习题8 128
第9章 结构体、公用体和枚举 129
9.1概述 129
9.2结构体 131
9.2.1结构体的声明与结构变量的定义 131
9.2.2对结构变量的操作 134
9.2.3组合结构体 135
9.3公用体 136
9.3.1公用体的声明与公用变量的定义 136
9.3.2公用变量的操作方式 138
9.4枚举类型 139
9.4.1枚举类型的声明与枚举变量的定义 139
9.4.2枚举变量的操作方式 140
9.5动态存储分配与链表结构 141
9.5.1动态存储分配方式的引入 141
9.5.2运算符new和delete的使用 142
9.5.3链表的组织方式及其建立 144
9.5.4链表的运算 146
习题9 148
第10章 从面向过程的程序设计到面向对象的程序设计 149
10.1面向过程的程序设计的不足 149
10.2面向对象程序设计 150
10.2.1对象 150
10.2.2抽象和类 150
10.2.3封装 150
10.2.4继承 151
10.2.5多态性 151
习题10 151
第11章 类与对象 152
11.1类的定义 152
11.1.1类的声明 152
11.1.2实现类的成员函数 153
11.1.3数据成员的赋值 154
11.1.4类成员的访问控制 154
11.2对象的定义和使用 155
习题11 156
第12章 构造函数与析构函数 158
12.1构造函数 158
12.1.1默认构造函数 158
12.1.2声明和定义构造函数 159
12.1.3复制构造函数 160
12.2析构函数 160
习题12 161
第13章 继承与派生 163
13.1派生类 163
13.1.1派生类的定义 163
13.1.2派生类的生成过程 164
13.2继承中的访问控制 164
13.2.1公有继承 165
13.2.2私有继承 166
13.2.3保护继承 168
13.3派生类的构造和销毁 169
13.3.1派生类的构造 170
13.3.2派生类的销毁 171
13.3.3基类和派生类的作用域解析运算符 172
13.4多重继承 172
13.4.1多重继承定义 173
13.4.2多重继承时构造和析构函数的运行 173
13.4.3多重继承的二义性 173
习题13 176
第14章 虚函数与多态性 178
14.1多态的实现机制 178
14.1.1静态绑定与动态绑定 178
14.1.2指向派生类型的指针 179
14.2虚函数 179
14.2.1虚函数的定义 179
14.2.2虚函数的简单应用 181
14.3纯虚函数和抽象类 182
14.3.1纯虚函数 182
14.3.2抽象类 182
习题14 183
第15章 静态成员 185
15.1静态成员的引入 185
15.2静态数据成员 185
15.3静态成员函数 186
15.4应用实例 187
习题15 190
第16章 友元函数与友元类 193
16.1友元的引入 193
16.2友元函数 195
16.2.1友元成员函数 195
16.2.2友元函数 196
16.3友元类 197
16.4应用实例 199
习题16 200
第17章 堆对象和对象数组 203
17.1堆和堆对象 203
17.1.1关于堆 203
17.1.2堆对象 203
17.2对象数组、指向对象数组的指针和对象指针数组 207
17.2.1对象数组 207
17.2.2指向对象数组的指针 209
17.2.3对象指针数组 210
17.3应用实例 211
习题17 213
第18章 运算符的重载 216
18.1运算符重载概述 216
18.1.1运算符重载的实质 216
18.1.2类运算符 216
18.1.3友元运算符 217
18.2增量运算符重载 218
18.2.1前增量与后增量的区别 218
18.2.2重载为类运算符 218
18.2.3重载为友元运算符 220
18.3赋值运算符重载 221
18.4下标运算符重载 223
18.5运算符new与delete重载 223
18.6类型转换运算符重载 225
18.6.1类到其他类型的转换 226
18.6.2基本类型到类类型的转换 227
18.7输出和输入运算符重载 229
18.8应用实例 230
习题18 235
第19章 模板与使用 239
19.1模板的概念 239
19.2函数模板 239
19.2.1函数模板的定义与模板函数的生成 239
19.2.2重载函数模板 240
19.3类模板 242
19.3.1类模板的定义与模板类的生成 242
19.3.2类模板的派生 246
19.4应用实例 246
习题19 249
第20章 文件及其操作 251
20.1文件概述 251
20.2文件流 252
20.2.1流类库 252
20.2.2文件流 253
20.3文件的打开与关闭 253
20.3.1打开文件 253
20.3.2关闭文件 255
20.4文件的读写 256
20.4.1文本文件的读写操作 256
20.4.2随机文件的读写操作 258
20.5应用实例 261
习题20 263
第21章 Visual C++集成开发环境 265
21.1 Visual Studio发展简介 265
21.2 Visual C++6.0开发环境 266
21.2.1 Visual C++6.0的安装 266
21.2.2 Visual C++6.0开发界面 267
21.2.3 Visual C++6.0开发流程 275
21.2.4 Visual C++6.0联机帮助 281
21.3 Visual C++2005 282
21.3.1 Visual C++2005的安装 282
21.3.2 Visual C++2005开发界面 286
21.3.3 Visual C++2005开发流程 288
21.4 Visual C++ 2008 293
21.4.1 Visual C++2008的安装 293
21.4.2 Visual C++2008开发界面 298
21.4.3 Visual C++2008开发流程 299
第22章 基于MFC开发Windows应用程序 303
22.1什么是Windows应用程序 303
22.1.1 Windows应用程序 303
22.1.2事件驱动 304
22.1.3编写Windows应用程序的模式 304
22.2 Windows编程基础 305
22.2.1 Windows基本编程概念 305
22.2.2 Windows消息 305
22.2.3消息类型 306
22.2.4消息机制 307
22.2.5简单Windows程序的解读 311
22.3 MFC基础 314
22.3.1 MFC简介 314
22.3.2 MFC的消息处理 315
22.3.3 MFC文档/视图结构 318
22.4基于MFC编写Windows程序 325
22.4.1应用AppWizard向导建立MFC应用程序框架 325
22.4.2应用ClassWizard向导进行消息映射 326
22.4.3应用资源编辑器编辑资源 327
22.5基于MFC开发Windows应用程序实例 328
习题22 331
第23章 编程基本规范 332
23.1文件结构 332
23.1.1版权和版本的声明 332
23.1.2头文件的结构 332
23.1.3定义文件的结构 333
23.1.4头文件的作用 334
23.2程序的版式 334
23.2.1空行 334
23.2.2代码行 335
23.2.3代码行内的空行 336
23.2.4对齐 337
23.2.5长行拆分 337
23.2.6修饰符的位置 338
23.2.7注释 338
23.3命名规则 339
23.3.1共性规则 339
23.3.2简单的Windows应用程序命名规则 340
第24章 程序调试的基本方法 342
24.1程序调试基础 342
24.2 Debugger调试工具 343
24.2.1启动Debugger 343
24.2.2 Debugger命令 344
24.3程序调试的基本方法 346
24.3.1启动Debugger 346
24.3.2基本调试方法 348
习题24 354
参考文献 357