第1章 C++语言概述 1
1.1 C++语言及其发展 1
1.2 程序设计方法 1
1.2.1 面向过程程序设计方法 1
1.2.2 面向对象程序设计方法 1
1.3 C++程序的结构 2
1.3.1 简单的C++程序 2
1.3.2 C++程序的结构 3
1.4 Visual C++ 6.0开发环境简介 5
1.4.1 Visual C++ 6.0开发环境简介 5
1.4.2 C++语言程序的编写和运行 5
1.5 C++语言的特点 8
习题 8
第2章 数据类型、运算符和表达式 9
2.1 数据类型 9
2.1.1 数据类型的划分 9
2.1.2 基本数据类型的存储 10
2.2 常量和变量 11
2.2.1 常量 11
2.2.2 变量 12
2.2.3 引用 12
2.2.4 符号常量与常值变量 13
2.3 数值表达式 14
2.3.1 无运算符的表达式 14
2.3.2 算术运算符 14
2.3.3 位运算符 14
2.3.4 赋值运算符 14
2.3.5 复合赋值运算符 14
2.3.6 增1减1运算符 15
2.3.7 求字节数运算符 15
2.3.8 运算符的优先级和结合性 15
2.3.9 类型的自动转换与强制转换 16
2.4 逻辑型数据和逻辑表达式 16
2.4.1 逻辑型数据的表示与存储 16
2.4.2 逻辑表达式 16
2.4.3 逻辑型与其他数据类型的关系 17
2.4.4 条件运算符与条件表达式 17
2.5 自定义类型修饰符 17
2.6 逗号运算符与逗号表达式 18
2.7 实训 18
2.7.1 实训1 18
2.7.2 实训2 19
习题 19
第3章 C++基本语句 21
3.1 声明语句 21
3.2 输入/输出语句 21
3.2.1 输入语句 21
3.2.2 输出语句 21
3.2.3 常用的控制符 22
3.3 分支语句 23
3.3.1 if语句 23
3.3.2 switch语句 26
3.4 循环语句 28
3.4.1 while语句 28
3.4.2 do...while语句 29
3.4.3 for语句 30
3.4.4 循环语句的嵌套 31
3.5 转向语句 32
3.5.1 goto语句 32
3.5.2 break语句 33
3.5.3 continue语句 33
3.5.4 return语句 34
3.6 实训 34
3.6.1 实训1 34
3.6.2 实训2 35
3.6.3 实训3 36
习题 36
第4章 数组 39
4.1 一维数组 39
4.1.1 一维数组的定义及初始化 39
4.1.2 数组元素的引用及基本操作 40
4.2 二维数组 42
4.2.1 二维数组的定义及初始化 42
4.2.2 数组元素的引用及基本操作 43
4.3 字符数组与字符串 44
4.3.1 字符数组的定义及初始化 44
4.3.2 字符串 44
4.3.3 字符串处理函数 45
4.4 实训 47
4.4.1 实训1 47
4.4.2 实训2 48
4.4.3 实训3 50
习题 50
第5章 函数 52
5.1 函数的定义和声明 52
5.1.1 函数的定义 52
5.1.2 函数的声明 53
5.2 函数的调用 54
5.2.1 函数的调用格式及调用方式 54
5.2.2 函数的嵌套调用和递归调用 55
5.3 函数调用中的参数传递 57
5.3.1 传值参数 57
5.3.2 数组参数 57
5.3.3 引用参数 59
5.3.4 可选参数 59
5.4 内联函数 60
5.5 函数重载 60
5.6 函数和变量的作用域 62
5.6.1 函数的作用域 62
5.6.2 变量的作用域和生存期 62
5.7 实训 64
5.7.1 实训1 64
5.7.2 实训2 66
5.7.3 实训3 66
习题 67
第6章 指针 70
6.1 指针与指针变量的概念 70
6.1.1 指针的概念 70
6.1.2 指针变量的定义和初始化 70
6.1.3 指针的运算 71
6.2 指针与数组 72
6.2.1 指针与一维数组 72
6.2.2 指针与二维数组 74
6.2.3 动态数组与动态存储分配 76
6.2.4 指针数组 78
6.3 指针与字符串 79
6.3.1 字符指针 79
6.3.2 字符指针与字符数组 79
6.4 指针与函数 80
6.4.1 指针参数 80
6.4.2 返回指针值的函数 81
6.4.3 指向函数的指针 81
6.4.4 作为参数传递的函数 82
6.5 实训 83
6.5.1 实训1 83
6.5.2 实训2 85
习题 85
第7章 结构与联合 87
7.1 结构的定义 87
7.2 结构变量的定义和初始化 87
7.2.1 用结构类型名定义结构变量 87
7.2.2 定义结构类型的同时定义结构变量 88
7.2.3 定义匿名结构类型的同时定义结构变量 88
7.3 结构成员的访问 89
7.4 结构与函数 90
7.5 结构与指针 91
7.6 联合 92
7.6.1 联合的定义和访问 92
7.6.2 联合的应用 93
7.7 实训 94
7.7.1 实训1 94
7.7.2 实训2 95
习题 96
第8章 类与对象 97
8.1 类与对象的定义 97
8.1.1 类的定义格式 97
8.1.2 类的定义和使用说明 98
8.1.3 对象的定义及访问 99
8.2 类的作用域 101
8.3 类的成员函数 102
8.3.1 构造函数 102
8.3.2 析构函数 103
8.4 友元函数 105
8.5 类的静态成员 106
8.5.1 静态数据成员 107
8.5.2 静态成员函数 108
8.6 实训 109
8.6.1 实训1 109
8.6.2 实训2 110
习题 112
第9章 继承与派生 114
9.1 继承与派生类 114
9.1.1 派生类的定义 114
9.1.2 派生类的继承方式 116
9.2 派生类的构造函数和析构函数 119
9.2.1 派生类的构造函数和析构函数的执行顺序 119
9.2.2 派生类的构造函数和析构函数的构造规则 121
9.3 多重继承 123
9.3.1 多重继承的概念 123
9.3.2 多重继承的声明 123
9.3.3 多重继承的构造函数和析构函数 124
9.3.4 多重继承中的同名问题 126
9.4 虚基类 127
9.4.1 虚基类的定义 127
9.4.2 虚基类的初始化 128
9.5 实训 129
习题 131
第10章 多态性 133
10.1 多态性 133
10.1.1 多态的概念 133
10.1.2 编译时的多态性和运行时的多态性 133
10.2 运算符重载 134
10.2.1 为什么要进行运算符重载 134
10.2.2 运算符重载的规则 134
10.2.3 运算符重载的方法 134
10.3 虚函数 138
10.3.1 虚函数的定义 138
10.3.2 虚函数与重载函数的比较 140
10.4 抽象类与纯虚函数 140
10.4.1 纯虚函数 140
10.4.2 抽象类 140
10.5 实训 141
习题 143
第11章 模板 146
11.1 函数模板的定义和使用 146
11.1.1 函数模板的定义 146
11.1.2 函数模板的使用 146
11.2 类模板的定义和使用 148
11.2.1 类模板的定义 148
11.2.2 类模板的使用 149
11.3 实训 150
11.3.1 实训1 150
11.3.2 实训2 151
习题 152
第12章 C++输入输出流 154
12.1 C++流 154
12.1.1 ios类 154
12.1.2 ostream类 155
12.1.3 istream类 155
12.2 格式控制 155
12.2.1 用ios类成员函数进行格式控制 155
12.2.2 ios类中的其他成员函数 157
12.2.3 格式控制操作符 160
12.3 文件的I/O操作 161
12.3.1 文件与文件流 161
12.3.2 文件流对象的建立 161
12.3.3 文件的打开与关闭 162
12.3.4 文本文件的I/O操作 163
12.3.5 二进制文件的I/O操作 164
12.4 实训 165
12.4.1 实训1 165
12.4.2 实训2 166
习题 168
第13章 C++程序设计实训 170
13.1 实训1 电话簿管理程序 170
13.2 实训2 模拟网上购书的结账功能 176
附录 184
附录1 C++运算符的优先级和结合性 184
附录2 常用字符与ASCII码对照表 185
附录3 2006年全国计算机等级考试二级C++考试大纲 185
参考文献 188