第1章绪论 1
1.1 C++语言发展史简介 1
目 录 1
1.2程序设计概述 2
1.2.1程序设计的发展历程 2
1.2.2结构化程序设计 3
1.2.3面向对象程序设计 3
1.3基本语法成分 5
1.3.1字符集 5
1.3.2标识符 5
1.3.4运算符 6
1.3.5分隔符 6
1.3.3关键字 6
1.3.6空白符 7
1.4一个简单的C++程序 7
第2章基本数据类型、运算符与表达式 10
2.1数据类型概述 10
2.2常量与变量 11
2.2.1 常量 11
2.2.2变量 11
2.3基本类型 12
2.3.1整型 12
2.3.2实型 14
2.3.3字符型 15
2.4运算符和表达式 17
2.3.4布尔类型 17
2.3.5 void类型 17
2.4.1赋值运算符和赋值表达式 18
2.4.2算术运算符和算术表达式 19
2.4.3关系运算符和关系表达式 21
2.4.4逻辑运算符和逻辑表达式 22
2.4.5条件运算符和条件表达式 22
2.4.6逗号运算符和逗号表达式 23
2.5类型转换 23
2.5.1 自动类型转换 23
2.5.2强制类型转换 24
3.1.1 C++语言无格式输入输出 26
3.1 C++语言输入输出流 26
第3章结构化程序设计 26
3.1.2 C++语言格式输入输出 28
3.2结构化程序设计概述 32
3.3顺序结构程序设计 33
3.3.1顺序结构 33
3.3.2程序举例 34
3.4选择结构程序设计 36
3.4.1用if语句实现选择结构设计 36
3.4.2用switch语句实现选择结构设计 39
3.5循环结构程序设计 42
3.5.1 while语句 42
3.5.3 for语句 44
3.5.2 do-while语句 44
3.5.4跳转语句break和continue 47
3.5.5循环的嵌套 49
3.6程序设计举例 50
第4章数组 56
4.1一维数组 56
4.1.1一维数组的定义 56
4.1.2一维数组元素的引用 57
4.1.3一维数组的初始化 58
4.1.4一维数组程序举例 58
4.2二维数组 61
4.2.1二维数组的定义 61
4.2.3二维数组的初始化 62
4.2.2二维数组元素的引用 62
4.2.4二维数组程序举例 64
4.3字符数组 65
4.3.1字符数组的定义 65
4.3.2字符数组的初始化 65
4.3.3字符数组的使用 67
4.3.4字符数组程序举例 69
4.3.5字符串处理函数 70
4.3.6字符串程序举例 72
第5章函数 74
5.1函数的定义 74
5.1.1函数的定义 74
5.1.2函数原型 76
5.2函数的调用 77
5.2.1函数的调用 77
5.2.2参数传递机制 80
5.2.3函数返回值 81
5.3函数的嵌套调用 82
5.4递归函数 86
5.5作用域与生命期 88
5.5.1作用域 88
5.5.2全局变量和局部变量 91
5.5.3生命期 94
6.1.1指针的概念 101
6.1指针的基本概念 101
第6章指针 101
6.1.2指针变量的定义 102
6.1.3指针变量运算符 103
6.1.4指针的初始化与赋值 105
6.1.5指针的运算 108
6.2指针与数组 111
6.2.1指向数组的指针 111
6.2.2指针与字符数组 114
6.2.3多级指针与指针数组 117
6.2.4指针与多维数组 122
6.2.5数组指针 125
6.3.1指针作为函数参数 126
6.3指针与函数 126
6.3.2函数调用中数组的传递 128
6.3.3函数指针 129
6.4引用 132
6.4.1引用 132
6.4.2函数参数的引用传递方式 135
第7章编译预处理命令 138
7.1宏定义 138
7.1.1不带参数的宏定义 138
7.1.2带参数的宏 140
7.2文件包含 141
7.3条件编译 143
8.1结构体类型 146
第8章结构体、共用体和枚举类型 146
8.2定义结构体类型变量 147
8.2.1先声明结构体类型再定义变量名 147
8.2.2声明结构体类型的同时定义变量 148
8.2.3直接定义结构体类型变量 148
8.2.4结构体变量的初始化 149
8.3结构体变量成员的引用 150
8.4结构体数组 152
8.4.1结构体数组的定义 152
8.4.2结构体数组的初始化 152
8.4.3结构体数组应用举例 153
8.5.1指向结构体变量的指针 154
8.5结构体指针 154
8.5.2指向结构体数组的指针 155
8.5.3用结构体变量和指向结构体的指针作为函数参数 156
8.6用指针处理链表 157
8.6.1链表的概述 157
8.6.2动态内存分配 158
8.6.3建立单向动态链表 159
8.6.4输出链表 161
8.6.5对链表的删除操作 162
8.6.6对链表的插入操作 163
8.7.1共用体的概念 164
8.7.2共用体类型和共用体类型变量的定义 164
8.7共用体 164
8.7.3共用体变量引用的方式 165
8.7.4共用体类型的特点 165
8.8枚举类型 166
8.8.1枚举类型及枚举变量的定义 166
8.8.2枚举元素的引用 167
8.8.3用typedef定义类型 168
第9章面向对象程序设计基础 169
9.1面向对象程序设计概述 169
9.1.1面向对象是软件方法学的返璞归真 169
9.1.2面向对象程序设计语言的四大家族 169
9.1.3面向对象程序分析OOA与设计OOD的基本步骤 170
9.2.1类 171
9.2类和对象 171
9.2.2对象 174
9.2.3名字解析和this指针 176
9.3带默认参数的函数和函数重载 176
9.3.1带默认参数的函数 176
9.3.2函数重载 178
9.4构造函数和析构函数 180
9.4.1构造函数 180
9.4.2析构函数 185
9.5对象成员和静态成员 187
9.5.1对象成员 187
9.5.2静态成员 188
9.6友元 189
9.7类模板和模板类 193
第10章继承与派生 197
10.1单一继承 197
10.1.1继承与派生 197
10.1.2派生类的定义 197
10.1.3类的继承方式 199
10.1.4派生类的构造函数和析构函数 203
10.2多继承 206
10.2.1多继承的概念和定义 206
10.2.2二义性和支配规则 207
10.2.3赋值兼容规则 208
10.3.1虚基类的概念 209
10.3虚基类 209
10.3.2多继承的构造函数和析构函数 210
第11章多态性与虚函数 214
11.1运算符重载 214
11.1.1什么是运算符重载 214
11.1.2用成员函数重载运算符 215
11.1.3用友元函数重载运算符 216
11.1.4几个运算符的重载 219
11.2虚函数 223
11.2.1为什么要引入虚函数 223
11.2.2虚函数的定义与使用 224
11.3.2抽象类的概念 228
11.3.1纯虚函数的概念 228
11.3纯虚函数和抽象类 228
11.4虚析构函数 230
第12章输入输出流 234
12.1标准输入输出流 234
12.1.1输入/输出流的概念 234
12.1.2 C++所有输入输出类的继承关系 234
12.2文件输入输出流 238
附录A 程序的调试与运行 241
附录B 标准字符ASCII表 251
附录C 实验 253
附录D 模拟考试题 259
附录E 参考课时安排 282