第1章 绪言 1
1.1 面向对象程序设计的特点 1
1.2 C++语言程序的开发过程 2
1.3 C++语言程序的结构 4
习题 6
第2章 数据类型、运算符和基本语句 8
2.1 基本概念 8
2.1.1 标识符 8
2.1.2 常量 9
2.1.3 变量 9
2.1.4 关键字 9
2.2 基本数据类型 9
2.2.1 整型变量及其常量 9
2.2.2 浮点型变量及其常量 10
2.2.3 字符型变量及其常量 10
2.2.4 void型数据 11
2.2.5 bool型变量及其常量 11
2.3 long、short、signed、unsigned关键字 12
2.3.1 long和short关键字 12
2.3.2 signed和unsigned关键字 12
2.4 枚举 13
2.5 const关键字 14
2.6 volatile关键字 15
2.7 typedef关键字 16
2.8 不同类型数据之间的转换 16
2.8.1 自动类型转换 16
2.8.2 强制类型转换 17
2.9 运算符 18
2.9.1 算术运算符 18
2.9.2 增1、减1运算符 19
2.9.3 关系运算符 19
2.9.4 逻辑运算符 20
2.9.5 位运算符 20
2.9.6 赋值运算符 24
2.9.7 条件运算符 24
2.9.8 逗号运算符 25
2.9.9 sizeof运算符 26
2.9.10 指针运算符 26
2.9.11 成员访问运算符 26
2.10 基本语句 26
2.10.1 语句、复合语句和空语句 27
2.10.2 if语句 27
2.10.3 switch语句 28
2.10.4 while语句 31
2.10.5 for语句 32
2.10.6 do-while语句 33
2.10.7 break语句 34
2.10.8 continue语句 35
2.10.9 goto语句 36
2.10.10 return语句 36
习题 37
第3章 数据的输入和输出 40
3.1 标准输入和输出 40
3.1.1 基于运算符〈〈和〉〉的输入输出 41
3.1.2 字符的输入get()和输出put() 45
3.1.3 字符串的输入get()和getline() 46
3.2 文件 47
3.2.1 文件的打开和关闭 47
3.2.2 文件的输入和输出 49
3.2.3 错误处理 49
习题 51
第4章 数组、指针和引用 54
4.1 数组 54
4.1.1 一维数组 54
4.1.2 二维数组 57
4.1.3 字符数组和字符串 61
4.2 指针 63
4.2.1 指针的基本概念 63
4.2.2 void型指针 65
4.2.3 二级指针 65
4.2.4 指针和数组 67
4.3 引用 75
4.4 内存的申请与释放 77
习题 78
第5章 函数 80
5.1 函数的定义和调用 80
5.2 函数的返回值及其类型 81
5.2.1 函数返回值 81
5.2.2 函数返回指针 82
5.2.3 函数返回引用 85
5.3 函数原型 86
5.4 函数的参数及其传递方式 88
5.4.1 将值传递给函数 88
5.4.2 将常量传递给函数 88
5.4.3 将指针传递给函数 89
5.4.4 将引用传递给函数 90
5.4.5 将数组传递给函数 90
5.5 函数的递归调用 92
5.6 变量的作用域和存储类 94
5.6.1 变量的作用域 95
5.6.2 变量的存储类 96
5.7 无参函数和默认参数 99
5.8 函数的重载 102
5.9 inline函数 103
5.10 外部函数和静态函数 105
习题 106
第6章 类 109
6.1 类的定义 109
6.2 公共、私有和保护 110
6.3 数据成员和成员函数 111
6.3.1 成员函数的使用 111
6.3.2 成员函数的内部定义和外部定义 111
6.3.3 数据成员的保护 113
6.4 构造函数和析构函数 114
6.4.1 构造函数 114
6.4.2 析构函数 121
6.5 复制构造函数 122
6.5.1 复制构造函数的说明和定义 122
6.5.2 默认复制构造函数 124
6.5.3 复制构造函数的进一步说明 128
6.6 变换构造函数和变换函数 131
6.6.1 变换构造函数 131
6.6.2 变换函数 132
6.7 静态数据成员和静态成员函数 134
6.8 this指针 137
6.9 友元 139
6.9.1 友元函数 139
6.9.2 友元类 141
6.10 运算符的重载 142
6.10.1 operator函数的功能 142
6.10.2 operator函数的重载 145
6.10.3 类的友元是operator函数 147
6.10.4 几个典型的例子 149
6.11 const对象 153
6.12 类的嵌套定义 156
6.13 类的数据成员是类对象或常量 160
6.13.1 类的数据成员是类对象 160
6.13.2 类的数据成员是常量 163
6.14 对象数组 166
6.15 指向类的成员的指针 169
6.15.1 指向类的非静态成员的指针 170
6.15.2 指向类的静态成员的指针 171
6.16 结构 174
6.17 联合 176
6.18 位段 177
习题 178
第7章 继承 180
7.1 基类和派生类 180
7.2 虚函数和多态 184
7.2.1 静态结合和动态结合 185
7.2.2 虚函数 187
7.3 纯虚函数和抽象类 190
7.3.1 纯虚函数 190
7.3.2 抽象类 193
7.4 虚析构函数 193
7.5 继承的种类 195
7.5.1 多重继承 195
7.5.2 直接继承和间接继承 199
7.6 多重基类和虚拟基类 200
7.7 继承方式下的构造与析构 202
习题 204
第8章 类的设计 206
8.1 计数器类的设计 206
8.2 字符串类的设计 213
8.3 链表类的设计 216
8.4 堆栈类的设计 220
8.5 数组类的设计 222
8.6 用于实现多态性的例子 224
习题 226
第9章 模板和异常处理 228
9.1 模板 228
9.1.1 函数模板 229
9.1.2 类模板 230
9.1.3 STL简介 233
9.2 异常处理 237
9.2.1 try关键字的使用 238
9.2.2 throw关键字的使用 238
9.2.3 catch关键字的使用 239
9.2.4 异常处理对象 241
9.2.5 异常处理中的构造与析构 244
习题 246
第10章 编译预处理 247
10.1 宏定义 247
10.2 文件包括 250
10.3 条件编译 252
10.4 其他编译预处理命令 255
习题 257