第1章 C++基础知识 1
1.1 C++与Visual C++语言 1
1.2 C++程序的基本要素 2
一个简单的程序 2
C++程序的基本要素 2
C++程序的书写规则 3
1.3 C++程序的开发步骤与上机实践 3
C++程序的开发步骤 3
C++程序的上机实践 4
练习题 5
第2章 基本数据类型与表达式 6
2.1基本数据类型 6
标识符、关键字与标点符号 6
C++的基本数据类型 7
常量 7
变量 10
2.2运算符与表达式 11
算术运算符与算术表达式 11
关系运算符与关系表达式 12
逻辑运算符与逻辑表达式 12
赋值运算符与赋值表达式 13
自增运算符与自减运算符 15
逗号运算符与逗号表达式 15
sizeof()运算符及表达式 16
表达式中运算符的运算顺序 16
2.3不同类型数据间的混合算术运算和赋值时的类型转换 17
不同类型数据间的混合算术运算 18
赋值时的类型转换 18
强制类型转换符 20
2.4简单的输入输出语句 20
十进制整数、实数与字符数据的输入 21
十六进制或八进制数据的输入 22
十进制整数、实数与字符数据的输出 22
输出八进制数、十六进制数和用科学表示法表示的实数 23
练习题 24
第3章 基本流程控制结构 26
3.1结构化程序设计 26
结构化程序设计 26
基本控制结构 27
C++语言的语句分类 28
3.2选择结构语句 29
if语句 29
条件运算符“?:” 32
switch语句 34
3.3循环结构语句 37
while语句 37
do-while语句 39
for语句 40
三种循环的比较及适用场合 42
多重循环 42
3.4控制执行顺序的语句 43
break语句 44
continue语句 44
goto语句 45
exit()和abort()函数 46
3.5综合应用举例 46
练习题 49
第4章 函数 53
4.1概述 53
4.2函数的定义与调用 54
函数的定义 54
函数的调用 56
4.3函数间的参数传递 59
传值调用 59
引用调用 60
4.4函数的原型说明 61
4.5函数的递归调用 63
4.6内联函数 65
4.7函数重载 66
4.8带有默认参数的函数 67
4.9局部变量和全局变量 68
局部变量 68
全局变量 70
4.10变量的存储类 72
变量的存储方式 72
auto型变量 73
static型变量 73
register型变量 75
extern型变量 76
4.11内部函数和外部函数 77
内部函数 77
外部函数 77
练习题 78
第5章 编译预处理 84
5.1宏定义 84
不带参数的宏定义 84
参数的宏定义 86
5.2文件包含 88
5.3条件编译 89
练习题 91
第6章 数组 94
6.1数组的定义和引用 94
一维数组的定义 94
一维数组的引用 95
一维数组的初始化 96
一维数组程序举例 97
6.2二维数组的定义和引用 99
二维数组的定义 99
二维数组的引用 100
二维数组的初始化 100
二维数组程序举例 101
6.3数组作为函数的参数 103
数组元素作为函数的实参 103
数组名作为函数的实参 103
二维数组用作函数的参数 105
6.4字符数组 106
字符数组的定义 106
字符数组的初始化 106
字符数组的引用 107
字符串和字符串结束标志 107
字符数组的输入输出 108
字符串处理函数 109
字符数组的应用举例 112
练习题 114
第7章 指针 118
7.1指针与地址 118
指针概念 118
指针变量的定义 119
指针变量作为函数参数 121
7.2指针与一维数组 122
通过指针引用一维数组中的元素 122
通过指针在函数间传递一维数组 124
7.3字符指针与字符串 125
字符数组与字符指针 125
字符串操作的特点 126
7.4指针与函数 127
函数指针变量 127
指针型函数 129
7.5指针与二维数组 130
二维数组的地址 130
通过指针引用二维数组中的元素 132
7.6指针数组与指向指针的指针 134
指针数组 134
指针的指针 136
多级指针小结 138
7.7动态存储分配 139
练习题 141
第8章 结构体和共用体 145
8.1结构体 145
结构体与结构体类型的声明 145
结构体类型变量 146
结构体数组和指针 149
8.2链表 153
正向链表 153
建立反向链表 163
8.3共用体 164
共用体类型与共用体变量 164
共用体变量的引用 165
8.4枚举 167
8.5用typedef声明类型 168
练习题 169
第9章 类和对象 174
9.1面向对象程序设计概述 174
面向对象 174
面向对象中的主要概念 174
面向对象的程序设计 176
9.2类的声明和对象的定义 177
类的声明 177
对象的定义 179
对象成员的访问 180
用类的指针访问对象成员 182
用对象的引用变量访问对象成员 182
9.3重载类的成员函数 182
重载类的成员函数 182
默认参数的类的成员函数 183
9.4 this指针 184
this指针简介 184
在成员函数中访问成员函数 186
练习题 187
第10章 构造函数和析构函数 191
10.1构造函数 191
构造函数的作用 191
构造函数重载 192
默认的构造函数 193
10.2析构函数 194
10.3构造对象的顺序 197
10.4对象的动态建立和释放 198
10.5拷贝构造函数 199
10.6临时对象 204
练习题 205
第11章 静态成员与友元 208
11.1静态成员 208
11.2静态成员函数 209
11.3友元函数 210
普通函数声明为友元函数 210
另一类的成员函数声明为类的友元函数 211
11.4友元类 213
练习题 215
第12章 运算符重载 217
12.1运算符重载的概念 217
12.2运算符重载为成员函数 218
双目运算符重载为成员函数 218
单目运算符重载为成员函数 221
赋值运算符重载为成员函数 225
12.3运算符重载为友元函数 231
双目运算符重载为友元函数 231
单目运算符重载为友元函数 233
12.4类型转换运算符函数 235
12.5重载流插入和流提取运算符 237
12.6综合实例 240
练习题 243
第13章 继承和派生 245
13.1继承与派生的概念 245
继承与派生的概念 245
派生类的定义 246
派生类的三种继承方式 247
13.2派生类的构造函数和析构函数 252
单继承派生类的构造函数 252
多继承派生类的构造函数 253
有子对象的派生类的构造函数 254
13.3继承的冲突与支配 256
冲突 256
支配 258
赋值兼容规则 259
13.4虚基类 260
虚基类的定义 260
虚基类的初始化 261
练习题 263
第14章 虚函数 267
多态性的概念 267
虚函数 267
纯虚函数与抽象类 272
练习题 274
第15章 输入输出流 277
15.1 C++的输入输出流 277
ios类的结构 277
输入流(四种形式) 278
输出流(三种形式) 279
15.2格式化的输入输出 280
输入格式化 280
输出格式化 281
15.3文件流 282
文件的概念 282
文件的打开与关闭 283
对文本文件的操作 285
对二进制文件的操作 287
练习题 290
第16章 C++工具 292
16.1模板 292
模板的概念 292
函数模板 293
类模板 294
16.2异常处理 295
异常的概念 295
异常处理的机制 296
练习题 299
参考文献 301