第1章 绪言 1
1.1面向对象程序设计的特点 1
1.2C++语言程序的开发过程 2
1.3C++语言程序的结构 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.4void型数据 11
2.2.5bool型变量及其常量 11
2.3long、short、signed、unsigned关键字 12
2.3.1long和short关键字 12
2.3.2signed和unsigned关键字 12
2.4枚举 13
2.5const关键字 14
2.6volatile关键字 15
2.7typedef关键字 16
2.8不同类型数据之间的转换 16
2.8.1自动类型转换 16
2.8.2强制类型转换 17
2.9运算符 18
2.9.1算术运算符 18
2.9.2增1、减1运算符 18
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.9sizeof运算符 26
2.9.10指针运算符 26
2.9.11成员访问运算符 26
2.10基本语句 26
2.10.1语句、复合语句和空语句 27
2.10.2if语句 27
2.10.3switch语句 28
2.10.4while语句 31
2.10.5for语句 32
2.10.6do-while语句 33
2.10.7break语句 34
2.10.8continue语句 35
2.10.9goto语句 36
2.10.10return语句 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.2void型指针 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.9inline函数 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.8this指针 137
6.9友元 139
6.9.1友元函数 139
6.9.2友元类 141
6.10运算符的重载 142
6.10.1operator函数的功能 142
6.10.2operator函数的重载 145
6.10.3类的友元是operator函数 147
6.10.4几个典型的例子 149
6.11const对象 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.3STL简介 233
9.2异常处理 237
9.2.1try关键字的使用 238
9.2.2throw关键字的使用 238
9.2.3catch关键字的使用 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