目录 1
第1章 概论 1
1.1 C++程序演示 1
1.2 C++程序的结构 3
1.2.1 简单的C++程序 3
1.2.2 C++程序的结构 4
1.2.3 C++源程序的编辑、编译、链接和运行 6
1.3 C++集成开发环境的安装与运行 7
1.3.1 系统配置 7
1.3.2 VisualC++6.0 集成开发环境的安装 7
1.3.3 VisualC++6.0 集成开发环境的使用 12
1.4 面向对象技术的形成、发展和C++的诞生 19
1.5 C++的主要特点概述 20
习题一 21
第2章 数据类型、运算符与表达式 22
2.1 基本字符、标识符和关键字 22
2.1.1 基本字符 22
2.1.2 标识符 23
2.1.3 关键字(保留字) 23
2.2 数据与数据类型 24
2.2.1 常量和变量 24
2.2.2 基本类型 26
2.2.3 数据类型转换 33
2.3 表达式与运算符 35
2.3.1 赋值运算符 36
2.3.2 算术运算符 37
2.3.3 自增(减)运算符 38
2.3.4 关系运算符 39
2.3.5 逻辑运算符 40
2.3.6 条件运算符 41
2.3.7 逗号运算符 41
2.3.8 位运算符 42
2.3.9 算术、关系、逻辑、赋值混合运算 43
2.3.10 运算顺序与副作用 44
习题二 45
3.1 程序结构与语句概述 46
第3章 程序的结构与语句 46
3.2 顺序结构 47
3.3 选择结构 50
3.3.1 if语句(条件语句) 50
3.3.2 switch语句(开关语句)和break语句 52
3.4 循环结构 54
3.4.1 当型循环(while循环) 55
3.4.2 直到型循环(do-while循环) 55
3.4.3 计数循环(for循环) 56
3.4.4 循环的嵌套 57
3.4.5 continue语句 58
习题三 59
3.4.6 goto语句和标号语句 59
第4章 数组与字符串 61
4.1 数组概述 61
4.2 一维数组 62
4.2.1 一维数组的定义和引用 62
4.2.2 一维数组的初始化 63
4.2.3 一维数组应用举例 63
4.3 二维数组和多维数组 64
4.3.1 二维数组的定义和引用 64
4.3.2 二维数组的初始化 65
4.3.3 二维数组应用举例 67
4.4 字符型数组与字符串 69
4.4.1 字符数组的定义 70
4.4.2 对字符数组初始化 70
4.4.3 字符串 70
4.4.4 字符型数组应用举例 72
习题四 74
第5章 函数与预处理 75
5.1 函数定义和声明 75
5.1.1 函数的定义 76
5.1.2 函数的声明 77
5.2 参数种类和参数传递方式 78
5.3 函数调用 78
5.4.1 函数的嵌套调用 80
5.4 函数的嵌套调用和递归调用 80
5.4.2 函数的递归调用和递归函数 81
5.5 存储属性 83
5.5.1 作用域 84
5.5.2 存储类别 85
5.6 内部函数与外部函数 90
5.6.1 内部函数 90
5.6.2 外部函数 90
5.7 预处理 91
5.7.1 宏定义 91
5.7.2 文件包含 95
5.7.3 条件编译 97
习题五 99
第6章 指针 100
6.1 指针和指针变量 100
6.2 指针变量的定义和使用 103
6.2.1 指针变量的定义和使用 103
6.2.2 指针变量作函数参数 105
6.2.3 指向指针的指针和指针所指向的类型 106
6.3 指针与数组 109
6.3.1 数组的指针和数组元素的指针 109
6.3.2 指针与一维数组 109
6.3.3 指向数组的指针作函数参数 113
6.3.4 指针与二维数组 114
6.3.5 动态数组与动态存储分配 117
6.3.6 指针数组 120
6.4 指针与字符串 121
6.5 指针与函数 126
6.5.1 返回指针值的函数 126
6.5.2 指向函数的指针 129
6.5.3 指向函数的指针作函数参数 130
6.5.4 main函数的参数 131
6.6 有关指针的数据类型小结 133
习题六 136
第7章 构造数据类型 138
7.1 结构型 138
7.1.1 结构型、结构型变量及结构型指针的定义 139
7.1.2 结构型的嵌套和匿名结构型 140
7.1.3 访问结构型变量 141
7.1.4 结构型变量的初始化 142
7.1.5 结构型数组 142
7.1.6 结构、指针与函数 145
7.1.7 综合应用 147
7.2 共用型 151
7.2.1 共用型的定义和共用型变量、指针的定义 151
7.2.2 共用型变量、指针的使用 151
7.3 枚举型 153
7.4 类型定义(typedef) 157
习题七 158
8.1 单行注释 160
8.2 块(分程序)内任何位置定义和声明 160
第8章 非面向对象的拓展 160
8.3 强制类型转换 161
8.4 流式I/O 162
8.5 函数的缺省参数 164
8.6 内联函数 166
8.7 函数重载 167
8.8 引用 168
8.8.1 独立引用 168
8.8.2 引用参数 170
8.8.3 返回引用的函数 172
8.9 const 173
8.9.1 const类型说明符 173
8.9.2 指针与常量 174
8.10 单目作用域运算符 175
8.11 动态存储分配与释放 176
习题八 180
第9章 类 183
9.1 类概念的引入和类的定义 183
9.2 类作用域 188
9.3 数据成员与方法 189
9.3.1 方法的定义和引用 189
9.3.2 内联方法 190
9.3.3 方法重载 191
9.3.4 const对象和const成员函数 195
9.4.2 析构函数 200
9.4.3 缺省构造函数 201
9.4.4 拷贝构造函数 202
9.5 成员对象和对象数组 204
9.5.1 成员对象 204
9.5.2 对象数组 206
9.6 类与指针 207
9.6.1 指向类对象的指针 207
9.6.2 this指针 208
9.6.3 指向类成员的指针 210
9.7 静态类成员 213
9.8 接口和实现的分离 215
习题九 219
10.1 派生 223
第10章 继承与派生 223
10.1.1 基类、派生类与继承 224
10.1.2 派生类的继承特性 225
10.2 多重继承 228
10.3 虚拟基类 231
10.4 派生类构造函数的定义方法 233
习题十 235
第11章 多态与动态联编 239
11.1 虚拟函数、动态多态性与动态联编 239
11.2 虚拟函数的访问属性 242
11.3 纯虚拟函数与抽象类 243
11.4.1 产品管理程序的非多态解 247
11.4 虚拟函数应用举例 247
11.4.2 产品管理程序的多态解 251
11.4.3 非多态解和多态解系统的维护 254
11.5 虚拟析构函数 256
11.6 动态联编的实现机理 256
习题十一 257
第12章 运算符重载 258
12.1 引入运算符重载的必要性 258
12.2 运算符重载的规则 259
12.3 含有指针数据成员的运算符重载 261
12.4 用户定义的转换 262
12.5 下标运算符重载 265
12.6 运算符重载的实例 266
习题十二 269
第13章 模板 270
13.1 类模板 270
13.2 函数模板 272
13.3 特殊版本的模板 273
13.4 模板友元 274
13.5 编程示例 276
习题十三 278
附录A C/C++与BorlandC++3.1中的关键字表 279
附录B 运算符的优先级和结合性 281
附录C BorlandC++3.1独立图形运行程序的建立 283
参考文献 284