第一章 认识C++ 1
1.1 计算机语言概述 1
1.1.1 程序设计语言 1
1.1.2 面向对象的程序设计及C++语言 2
1.2 C++程序的基本结构 3
1.2.1 简单C++程序及程序基本结构 3
1.2.2 C++程序语句中的注释 4
1.3 Visual C++6.0开发环境 5
1.3.1 Visual C++6.0集成开发环境简介 5
1.3.2 Visual C++6.0中程序的开发流程 6
第二章 数据类型、运算符及表达式 11
2.1 词法符号 11
2.1.1 字符集 11
2.1.2 标识符 11
2.1.3 保留字 12
2.2 基本数据类型 12
2.3 常量与变量 13
2.3.1 常量 13
2.3.2 变量 15
2.4.2 算术运算 17
2.4.1 运算符与表达式概述 17
2.4 运算符与表达式 17
2.4.3 赋值运算 19
2.4.4 关系运算 20
2.4.5 逻辑运算 21
2.4.6 位运算 23
2.4.7 移位运算符及表达式 24
2.4.8 增1、减1运算符及表达式 26
2.4.9 其他运算 28
3.1.1 程序设计的发展过程 31
3.1.2 算法及算法描述 31
3.1 程序设计概述 31
第三章 结构化程序设计 31
3.1.3 结构化程序设计方法 33
3.2 C++基本语句 33
3.3 数据的输出与输入 34
3.3.1 数据的输出 34
3.3.2 数据的输入 35
3.3.3 简单的I/O格式控制 36
3.4 顺序结构程序设计 37
3.5.1 if语句及if语句的嵌套 38
3.5 选择结构程序设计 38
3.5.2 条件表达式 44
3.5.3 switch/break语句 45
3.5.4 选择结构程序设计举例 47
3.6 循环结构程序设计 52
3.6.1 while循环语句 52
3.6.2 do-while循环语句 54
3.6.3 for循环语句 55
3.6.4 循环的嵌套 57
3.6.5 几种循环的比较 58
3.6.6 break语句和continue语句 59
3.6.7 循环程序设计举例 63
第四章 数组 67
4.1 一维数组 67
4.1.1 一维数组的定义 67
4.1.2 一维数组元素的引用 68
4.1.3 一维数组的初始化 69
4.1.4 一维数组程序举例 71
4.2 二维数组 74
4.2.1 二维数组的定义 74
4.2.2 二维数组元素的引用 75
4.2.3 二维数组的初始化 76
4.2.4 二维数组程序举例 77
4.3 字符数组 79
4.3.1 一维字符数组 79
4.3.2 字符串与字符串结束标志 80
4.3.3 字符数组的初始化 80
4.3.4 字符串的输出 82
4.3.5 字符串的输入 84
4.3.6 字符串处理函数 86
4.3.7 二维字符数组 90
4.3.8 字符数组程序举例 92
第五章 指针 96
5.1 指针与指针变量 96
5.1.1 指针的概念 97
5.1.2 指针变量的定义 98
5.1.3 指针变量的初始化 99
5.1.4 指针变量的引用 100
5.1.5 指针的运算 102
5.2 指针与数组 105
5.2.1 指针与一维数组 105
5.2.2 指针与字符串 108
5.3 多级指针与指针数组 110
5.3.1 多级指针 110
5.3.2 指针数组 112
5.3.3 用二级指针处理二维数组和多个字符串 117
5.3.4 用指针数组处理二维数组 119
5.4 数组指针 121
5.5 引用 123
5.5.1 引用及其声明 123
5.5.2 引用的使用 123
5.6 内存管理 125
第六章 函数 129
6.1 函数的定义 129
6.1.1 函数概念的引入 129
6.1.2 函数的定义 130
6.1.3 return语句 132
6.1.4 函数原型及其声明 134
6.2 函数的调用 135
6.2.1 函数调用的一般格式 135
6.2.2 函数调用时的参数传递机制 136
6.3.1 指针作为函数参数 139
6.3 指针与函数 139
6.3.2 指向数组的指针作为函数参数 142
6.3.3 函数指针 144
6.3.4 指针函数 147
6.4 函数的嵌套调用 148
6.5 函数的递归调用 150
6.6 内联函数 153
6.7 默认参数的函数 155
6.7.1 默认参数的函数 155
6.7.2 默认参数的函数的使用及其注意问题 155
6.8.1 作用域 156
6.8 作用域与变量的存储方式 156
6.8.2 局部变量和全局变量 159
6.8.3 变量的存储方式 163
第七章 编译预处理 168
7.1 宏定义 168
7.1.1 不带参数的宏定义 168
7.1.2 带参数的宏定义 170
7.2 文件包含 171
7.3 条件编译 173
8.1.1 结构体类型的定义 176
8.1 结构体类型 176
第八章 复杂数据类型 176
8.1.2 结构体类型变量的定义 178
8.1.3 结构体变量的初始化 179
8.1.4 结构体变量及其成员的引用 180
8.1.5 结构体数组 183
8.1.6 指向结构体类型数据的指针 186
8.2 共用体 189
8.2.1 共用体类型的定义 189
8.2.2 共用体类型变量的定义 189
8.2.3 共用体变量成员的引用 190
8.3 枚举类型 192
8.3.1 枚举类型及枚举类型变量的定义 192
8.3.2 枚举变量的使用 193
8.4 用typedef定义新的数据类型名 194
第九章 类与对象 196
9.1 类与对象 196
9.1.1 类的定义 196
9.1.2 类的实例——对象 198
9.1.3 构造函数与析构函数 199
9.1.4 对象数组与对象指针 203
9.1.5 静态数据成员和静态成员函数 207
9.2 友元 209
9.2.1 友元函数的定义及作用 209
9.2.2 友元类 210
9.3 重载 211
9.3.1 函数的重载 211
9.3.2 运算符的重载 212
9.4 继承与派生 215
9.4.1 派生类 215
9.4.2 派生类对基类成员的覆盖 220
9.4.3 派生类的构造函数和析构函数 221
9.5 多态性与虚函数 223
9.5.1 多态性 223
9.5.2 虚函数 224
9.5.3 抽象基类 225
9.6 模板 226
9.6.1 函数模板 226
9.6.2 类模板 228
附录Ⅰ C++语言运算符的优先级和结合性 233
附录Ⅱ ASCII码表 234
参考文献 235