第1章 C++语言概述 1
1.1 C++语言概况及特点 1
1.1.1 C++语言发展简史 1
1.1.2 C++语言的特点 2
1.1.3 C++程序结构 3
1.2 C++的词法及词法规则 3
1.2.1 C++的字符集 3
1.2.2 单词及词法规则 4
1.3 C++程序的开发环境 5
1.3.1 编辑 5
1.3.2 编译 6
1.3.3 运行 7
1.4 程序设计的一般方法 7
1.4.1 面向对象程序设计方法 7
1.4.2 程序设计语言 8
1.4.3 程序开发的一般过程 9
第2章 基本数据类型、运算符及表达式 11
2.1 C++语言的基本数据类型 11
2.1.1 整型数据 11
2.1.2 实型数据 12
2.1.3 字符型数据 12
2.1.4 字符串型数据 12
2.1.5 常量类型说明符const及变量 12
2.2 运算符及表达式 15
2.2.1 概述 15
2.2.2 运算符的优先级与结合性 16
2.2.3 算术运算符、关系运算符及表达式 17
2.2.4 赋值运算符、逻辑运算符 18
2.2.5 自增与自减运算符 19
2.2.6 逗号运算符 20
2.2.7 条件运算符 20
2.3 表达式的类型及其运算 21
2.3.1 表达式的类型 21
2.3.2 类型转换 21
2.4 位运算符及位运算 22
2.4.1 按位与运算 22
2.4.2 按位或运算 23
2.4.3 按位异或运算 23
2.4.4 取反运算符 23
2.4.5 左移、右移运算符 23
第3章 控制结构 24
3.1 顺序结构程序设计 24
3.1.1 C++的基本语句 24
3.1.2 I/O流 25
3.1.3 预定义的插入符和提取符 25
3.1.4 简单的I/O格式控制 26
3.2 选择结构程序设计 30
3.2.1 if语句 31
3.2.2 if...else语句 31
3.2.3 if...else if语句 32
3.2.4 switch语句 36
3.3 循环结构程序设计 40
3.3.1 while语句 40
3.3.2 do...while语句 42
3.3.3 for语句 44
3.3.4 循环的嵌套 46
3.4 转移语句 48
3.4.1 break语句 48
3.4.2 continue语句 49
3.4.3 goto语句 49
第4章 数组 51
4.1 一维数组 51
4.1.1 一维数组及其定义 51
4.1.2 一维数组的初始化及引用 52
4.2 二维数组 54
4.2.1 二维数组及其定义 54
4.2.2 二维数组的初始化及引用 54
4.3 字符数组与字符串 58
4.3.1 字符数组的定义及初始化 58
4.3.2 字符数组的引用 59
4.3.3 字符数组与字符串 60
4.3.4 字符串处理函数 61
第5章 函数和作用域 62
5.1 函数的定义和声明 62
5.1.1 函数的定义 62
5.1.2 函数的声明 63
5.2 函数的调用 64
5.2.1 函数的调用方式 64
5.2.2 函数的值和类型 66
5.2.3 函数的嵌套调用 68
5.2.4 函数的递归调用 69
5.3 函数参数 71
5.3.1 形式参数与实在参数 71
5.3.2 设置函数的默认值 71
5.3.3 数组名作为函数参数 72
5.4 作用域 73
5.4.1 局部变量和全局变量 74
5.4.2 内部函数和外部函数 76
5.4.3 作用域限定运算符 78
5.5 内联函数 79
5.6 函数重载 80
5.6.1 参数类型不同的重载函数 80
5.6.2 参数个数不同的重载函数 81
5.7 库函数及其使用 82
5.8 函数模板 83
5.8.1 函数模板的定义 83
5.8.2 函数模板的实例化 84
第6章 编译预处理 87
6.1 宏定义 87
6.1.1 不带参数的宏定义 87
6.1.2 带参数的宏定义 88
6.2 文件包含 90
6.3 条件编译 90
第7章 指针 93
7.1 指针及指针变量 93
7.1.1 指针的概念 93
7.1.2 指针变量的定义与引用 95
7.1.3 指针的运算 97
7.2 指针与数组 100
7.2.1 一维数组与指针 100
7.2.2 多维数组与指针 103
7.3 指针与字符串 105
7.3.1 字符串的指针表示 105
7.3.2 指针数组 106
7.4 指针与函数 108
7.4.1 指针变量作函数的参数 108
7.4.2 函数的入口地址和函数指针 109
7.4.3 返回指针的函数 111
7.5 new和delete操作符 111
7.5.1 new和delete操作符的使用方法 112
7.5.2 使用new和delete操作符的注意事项 113
第8章 结构体与共用体 116
8.1 结构体 116
8.1.1 结构体的定义 116
8.1.2 结构体变量成员的引用 118
8.1.3 结构体数组 120
8.2 结构体与函数 122
8.2.1 结构体变量作为函数参数 122
8.2.2 返回结构体类型值的函数 123
8.3 共用体 124
8.3.1 共用体及其定义 125
8.3.2 共用体成员的访问 126
8.4 枚举类型 127
8.4.1 枚举及其定义 127
8.4.2 枚举类型举例 128
第9章 类与对象 130
9.1 类的定义 130
9.2 对象 132
9.2.1 对象的定义 132
9.2.2 对象成员的表示方法 133
9.3 构造函数与析构函数 136
9.3.1 构造函数与析构函数 136
9.3.2 带参数的构造函数 138
9.3.3 实现复制的构造函数 139
9.4 友元 143
9.4.1 友元函数 143
9.4.2 友元类 144
9.5 对象指针和对象引用 147
9.5.1 指向类成员的指针 147
9.5.2 对象指针和对象引用作函数参数 149
9.5.3 this指针 152
9.6 局部类和嵌套类 154
9.6.1 局部类 154
9.6.2 嵌套类 155
第10章 继承和派生类 156
10.1 基类和派生类 156
10.1.1 派生类的定义 156
10.1.2 派生类的三种继承方式 158
10.2 单基继承 159
10.2.1 成员访问控制 159
10.2.2 构造函数和析构函数 164
10.3 多基继承 167
10.3.1 多基继承的概念 167
10.3.2 多基继承的构造函数 169
10.4 虚基类 172
10.4.1 虚基类的引入和说明 172
10.4.2 虚基类的初始化 173
第11章 多态性和虚拟函数 176
11.1 静态联编和动态联编 176
11.1.1 静态联编 176
11.1.2 动态联编 178
11.2 运算符重载 178
11.2.1 运算符重载的意义 178
11.2.2 运算符重载的实现 180
11.3 虚拟函数 186
11.3.1 虚拟函数的实现 186
11.3.2 空虚函数 188
11.3.3 纯虚函数与抽象类 191
第12章 文件和流类库 194
12.1 文件与流的基本概念 194
12.1.1 文件的概念 194
12.1.2 流的概念 195
12.2 基本流类体系 196
12.2.1 基本流类体系 196
12.2.2 预定义的流与流运算符 198
12.2.3 流的格式控制 199
12.3 文件流 208
12.3.1 文件流类体系 208
12.3.2 文件的打开 209
12.3.3 文件的关闭 210
12.3.4 文本文件的读写操作 211
12.3.5 二进制文件的读写操作 213
参考文献 216