第1章 C++概述 1
1.1面向对象的概念 1
1.1.1面向对象方法的由来和发展 1
1.1.2面向对象的基本概念 1
1.2 C++的发展历史 2
1.3 C++的特点 2
1.4 C++语言与C语言 3
1.4.1 C++语言对C语言的继承 3
1.4.2 C++语言对C语言的改进 3
1.5 C++程序结构与书写格式 4
1.5.1简单的C++语言程序 4
1.5.2 C++程序的构成 8
1.5.3 C++程序的书写格式 9
1.6 C++程序的实现 9
1.6.1简单C++程序的编写和运行过程 9
1.6.2 C++单文件程序调试的一般过程及调试手段 10
1.6.3 C++多文件程序的实现 15
本章小结 19
习题 19
第2章 数据类型、运算符和表达式 21
2.1标识符 21
2.2数据类型 21
2.2.1整型 22
2.2.2实型 25
2.2.3字符型 25
2.3常量和变量 25
2.3.1整型常量和整型变量 27
2.3.2实型常量和实型变量 28
2.3.3字符常量和字符变量 29
2.3.4字符串常量 29
2.4常用函数 30
2.5算术运算符和算术表达式 31
2.5.1算术运算符 32
2.5.2算术表达式 33
2.6关系运算符和关系表达式 33
2.6.1关系运算符 33
2.6.2关系表达式 34
2.7逻辑运算符和逻辑表达式 35
2.7.1逻辑运算符 35
2.7.2逻辑表达式 35
2.8赋值运算符和赋值表达式 37
2.8.1赋值运算符 37
2.8.2赋值表达式 38
2.9逗号运算符和逗号表达式 38
2.10数据类型转换 39
2.10.1数据类型的隐式转换 39
2.10.2数据类型的显式转换 40
2.11运算符的优先级和结合性 40
2.11.1运算符的优先级 40
2.11.2运算符的结合性 42
2.12数据的输入、输出 42
2.12.1数据的输出函数 42
2.12.2数据的输入函数 46
2.12.3输入流cin 49
2.12.4输出流cout 51
本章小结 58
习题 58
第3章 语句和预处理 61
3.1算法 61
3.1.1算法及其表示 61
3.1.2算法的设计过程 63
3.2 if语句 64
3.2.1 if语句的基本形式 64
3.2.2 if语句的嵌套 69
3.3条件运算符和条件运算表达式 70
3.4 switch语句 72
3.5选择程序结构 74
3.6循环语句 78
3.6.1循环程序的组成 79
3.6.2循环程序的分类 79
3.7 while语句和do-while语句 79
3.7.1用法 79
3.7.2执行过程 80
3.7.3循环的嵌套 82
3.7.4应用举例 82
3.8 for语句 84
3.8.1用法 84
3.8.2执行过程 86
3.8.3循环的嵌套 86
3.8.4 for语句的变化形式 88
3.8.5应用举例 91
3.9循环的控制 97
3.9.1复杂循环的控制条件 97
3.9.2 break语句和continue语句 97
3.9.3 goto语句 100
3.9.4应用举例 101
3.10预处理 104
3.10.1文件包含命令 104
3.10.2宏定义命令 105
3.10.3条件编译命令 108
本章小结 110
习题 110
第4章 函数 125
4.1函数的定义与调用 125
4.1.1函数的定义 125
4.1.2函数的调用 129
4.2函数间参数的传递 132
4.3变量的属性 134
4.3.1局部变量和全局变量 134
4.3.2动态存储方式和静态存储方式 136
4.3.3变量的存储类别 137
4.4函数的嵌套调用与递归调用 141
4.4.1函数的嵌套调用 141
4.4.2函数的递归调用 143
本章小结 147
习题 147
第5章 数组和字符串 152
5.1一维数组 152
5.1.1一维数组的定义 152
5.1.2一维数组的初始化 153
5.1.3一维数组元素的引用 154
5.1.4一维数组的应用 156
5.2二维数组 161
5.2.1二维数组的定义 161
5.2.2二维数组的初始化 162
5.2.3二维数组元素的引用 163
5.2.4二维数组的应用 163
5.3数组作为函数参数 164
5.3.1一维数组与函数 164
5.3.2二维数组与函数 166
5.4字符数组 168
5.4.1字符数组与字符串 168
5.4.2字符串的输入与输出 169
5.4.3字符串处理函数 175
本章小结 178
习题 178
第6章 指针和引用 182
6.1指针的概念 182
6.1.1指针和指针变量 182
6.1.2直接访问数据和间接访问数据 182
6.2指针的操作 183
6.2.1指针变量的定义 183
6.2.2指针变量的赋值 184
6.2.3指针运算符 185
6.3指针与数组 188
6.3.1一维数组与指针 188
6.3.2二维数组和指针 191
6.3.3字符串和指针 193
6.4指针与函数 197
6.4.1指针参数与函数的地址传送调用 197
6.4.2返回指针的函数 201
6.4.3指向函数的指针变量 202
6.4.4使用参数的main函数 203
6.5引用 205
6.5.1引用的概念 205
6.5.2引用的应用 206
6.5.3引用与指针的区别 210
本章小结 210
习题 212
第7章 类和对象 215
7.1面向对象程序设计概述 215
7.1.1面向过程和面向对象 215
7.1.2面向对象程序设计的基本特点 215
7.1.3类和对象 216
7.2类的定义 216
7.2.1类的声明格式 216
7.2.2定义类的注意事项 219
7.2.3类与结构体 219
7.3成员函数 221
7.3.1成员函数概述 221
7.3.2成员函数的定义 221
7.4对象 225
7.4.1类与对象的关系 225
7.4.2对象的基本概念 225
7.4.3对象的定义 225
7.4.4对象成员的表示方法 227
7.4.5对象的赋值 230
7.4.6简单应用举例 231
7.5构造函数 235
7.5.1数据成员的初始化 235
7.5.2构造函数的定义 236
7.5.3构造函数的特点 237
7.5.4构造函数的分类 238
7.5.5用参数初始化表对数据成员初始化 250
7.5.6带有默认参数的构造函数 251
7.5.7构造函数的重载 255
7.6析构函数 257
7.6.1析构函数的概念 257
7.6.2默认的析构函数 259
7.7 this指针 264
7.8共用数据的保护 267
7.8.1常对象 267
7.8.2常对象成员 270
7.8.3常对象指针 276
7.8.4常对象引用 282
7.9静态成员 283
7.9.1静态数据成员 283
7.9.2静态成员函数 289
7.10友元 291
7.10.1友元函数 292
7.10.2友元成员 295
7.10.3友元类 296
本章小结 297
习题 298
第8章 继承和派生 305
8.1继承和派生的概念 305
8.2单继承派生类的定义 306
8.2.1派生类的声明 306
8.2.2派生类的构成 307
8.3派生类的继承方式 308
8.3.1类的公有继承 309
8.3.2类的私有继承 311
8.3.3类的保护继承 313
8.4派生类的构造函数和析构函数 314
8.4.1派生类的构造函数 314
8.4.2有子对象的派生类的构造函数 315
8.4.3派生类的析构函数 316
8.5多重继承 318
8.5.1多重继承的声明 318
8.5.2多重继承的构造函数和析构函数 319
8.5.3多重继承的二义性 320
8.6虚基类 324
本章小结 325
习题 325
第9章 多态性和虚函数 338
9.1多态性 338
9.1.1多态的概念 338
9.1.2多态性的一个典型例子 338
9.2基类和派生类之间的转换 342
9.3虚函数 345
9.4纯虚函数与抽象类 347
本章小结 350
习题 350
第10章 流类库和输入输出操作 355
10.1输入输出流的概念 355
10.2标准输入输出流 356
10.2.1标准输入流的使用 357
10.2.2标准输出流的使用 360
10.3文件的输入和输出 365
10.3.1文件打开和关闭 365
10.3.2文本文件的读写 366
10.3.3二进制文件的读写 367
10.3.4文件的随机存取 368
本章小结 370
习题 370
附录A字符的ASCII表 373
附录B Microsoft Visual C++ 6.0集成开发工具简介 375
B.1 Visual C++ 6.0概述 375
B.2 Visual C++ 6.0的启动及其主窗口简介 375
B.3菜单功能介绍 375
B.4调试菜单功能介绍 381
B.5上下文关联菜单 382
B.6工具栏 383
B.7工作区窗口 383
B.8输出窗口 383
B.9编辑窗口 383
参考文献 384