第1章 Visual C++程序设计入门 1
1.1 程序设计语言与程序设计 1
1.2 Visual C++字符集与标识符 2
1.3 Visual C++函数的概念 3
1.4 基本数据类型 4
1.5 常量 5
1.5.1 值常量 5
1.5.2 符号常量 7
1.6 变量 8
1.7 文件包含与输入输出流 9
1.8 指针类型变量 11
1.9 引用类型变量 13
1.10 枚举类型 14
1.11 运算符和表达式 15
1.11.1 运算符 15
1.11.2 表达式 18
1.11.3 typedef语句 19
1.12 练习题 19
第2章 流程控制语句 21
2.1 操作运算语句 21
2.2 流程控制语句 22
2.2.1 顺序结构 22
2.2.2 选择结构 23
2.2.3 循环结构 29
2.2.4 循环嵌套 34
2.2.5 break语句与continue语句 37
2.2.6 abort()函数与exit()函数 38
2.3 练习题 39
第3章 数组 40
3.1 一维数组 40
3.1.1 一维数组的定义 40
3.1.2 一维数组的初始化 41
3.1.3 一维数组的基本操作 41
3.2 二维数组 44
3.2.1 二维数组的定义 44
3.2.2 二维数组的初始化 45
3.2.3 二维数组的基本操作 45
3.3 字符数组 47
3.3.1 字符数组的定义与初始化 47
3.3.2 字符数组的基本操作 48
3.3.3 字符串处理函数 49
3.4 数组与指针 52
3.4.1 指针变量与一维数组 52
3.4.2 指针变量与二维数组 55
3.4.3 通过指针变量操作字符数组 59
3.5 指针数组 61
3.5.1 指针数组的定义 61
3.5.2 通过指针数组操作一维数组和二维数组 61
3.5.3 通过指针数组和指向指针的指针变量操作系列字符串 62
3.6 练习题 64
第4章 函数 65
4.1 概述 65
4.2 函数的定义与调用 66
4.3 函数嵌套调用和递归调用 68
4.3.1 函数的嵌套式调用 68
4.3.2 函数的递归调用 70
4.4 函数的参数传递 73
4.4.1 函数参数为数值变量的传递形式 73
4.4.2 函数参数为地址的传递形式 74
4.4.3 函数参数为引用变量的传递形式 80
4.5 函数与指针 82
4.5.1 指针类型的函数 82
4.5.2 指向函数的指针变量 83
4.5.3 带参数的main()函数 87
4.6 函数的其他特性 87
4.6.1 内联函数 87
4.6.2 函数的重载 88
4.6.3 函数参数的默认值 88
4.7 练习题 89
第5章 作用域和编译预处理 91
5.1 作用域 91
5.2 存储类型 96
5.3 编译预处理 101
5.3.1 文件包含 102
5.3.2 宏定义 102
5.3.3 条件编译 106
5.4 练习题 107
第6章 结构体与简单链表 109
6.1 结构体 109
6.1.1 结构体类型的定义 109
6.1.2 结构体类型变量的说明 110
6.1.3 结构体类型变量的引用 111
6.1.4 指向结构体变量的指针变量 113
6.1.5 结构体数组 115
6.1.6 用结构体变量作函数参数 115
6.2 链表 118
6.2.1 new和delete运算符 118
6.2.2 链表 119
6.3 链表的基本操作 120
6.3.1 链表结点的创建 120
6.3.2 链表的建立 121
6.3.3 链表的输出 122
6.3.4 释放链表的结点空间 123
6.4 链表的综合操作 124
6.4.1 结点的删除 125
6.4.2 结点的插入 126
6.4.3 查找结点 128
6.4.4 链表的综合举例 129
6.5 练习题 132
第7章 类和对象 134
7.1 面向对象程序设计概述 134
7.2 类和对象 135
7.2.1 类和对象的概念 135
7.2.2 类的定义 136
7.2.3 成员函数 137
7.2.4 对象的定义和使用 139
7.2.5 类的作用域 141
7.3 构造函数 142
7.3.1 对象赋值的方法 142
7.3.2 构造函数 143
7.3.3 类型转换构造函数 149
7.3.4 复制构造函数 150
7.3.5 this指针 151
7.4 析构函数 152
7.4.1 析构函数的定义 152
7.4.2 析构函数的使用 153
7.4.3 不同存储类型的对象调用构造函数及析构函数 155
7.5 练习题 157
第8章 继承和派生 159
8.1 基类和派生类 159
8.2 继承 160
8.2.1 单一继承 160
8.2.2 多重继承 164
8.2.3 派生类的构造函数 165
8.2.4 派生类的析构函数 169
8.3 冲突、支配规则和赋值兼容性 169
8.3.1 冲突 169
8.3.2 支配规则 170
8.3.3 赋值兼容性 171
8.4 静态成员 172
8.4.1 静态数据成员 172
8.4.2 静态成员函数 173
8.5 友元函数与友元类 174
8.5.1 友元函数 174
8.5.2 友元类 176
8.6 虚基类 177
8.7 练习题 179
第9章 多态性 181
9.1 多态性的概念 181
9.1.1 多态性的含义 181
9.1.2 多态性的种类 181
9.2 虚函数与运行的多态性 182
9.2.1 虚函数 182
9.2.2 通过虚函数实现运行的多态性 183
9.2.3 虚函数与构造函数、析构函数 184
9.2.4 纯虚函数 185
9.3 运算符重载与编译的多态性 187
9.3.1 运算符重载的概念 187
9.3.2 运算符重载的方法 188
9.3.3 几种典型的运算符重载 191
9.3.4 字符串类的运算符重载 196
9.4 抽象类 198
9.5 练习题 198
第10章 流类和文件 200
10.1 Visual C++的基本流类体系 200
10.1.1 基本流类体系 200
10.1.2 流的格式控制 201
10.1.3 使用I/O成员函数 204
10.1.4 运算符“〈〈”和“〉〉”的重载 205
10.2 文件的概述 207
10.3 文件流 208
10.4 文件的打开与关闭 209
10.4.1 打开文件 209
10.4.2 关闭文件 210
10.5 文件的读写操作 210
10.5.1 文本文件的读写操作 211
10.5.2 二进制文件的读写操作 213
10.5.3 随机访问文件的函数 215
10.6 练习题 215
参考文献 217
附录A ASCII码表 218
附录B 常用库函数 220