本书系统介绍C 语言的基础知识、基本语法和编程方法。重点讲述C 语言面向对象的重要特征,包括类和对象、继承性和派生类、多态性和虚函数、模板和C 语言实现的常用数据结构、异常处理和命名空间等重要内容。同时,还介绍C 语言对C语言的继承和改进。 本书内容系统全面,偏重应用;通过例题详细讲述C 语言具有的封装性、继承性和多态性,并阐述使用C 语言编程的方法、技巧和工具等。为了方便教学,本书每章最后都备有大量的练习题和上机题。 本书适合作为高等院校“C 语言程序设计”课程的教学用书,还可作为C 语言的自学或教学参考书。
目录
- 第1章 C 语言概述 1
- 1.1 面向对象的概念 1
- 1.1.1 面向对象方法的由来 1
- 1.1.2 面向对象的基本概念 2
- 1.2 C 语言的特点 3
- 1.2.1 C 语言是面向对象的程序设计语言 3
- 1.2.2 C 语言继承了C语言 3
- 1.2.3 C 语言对C语言进行了改进 4
- 1.3 C 程序在结构上的特点 4
- 1.3.1 C 程序举例 5
- 1.3.2 C 程序结构上的特点 7
- 1.4 C 程序的实现 7
- 1.4.1 C 程序的编辑、编译和运行 7
- 1.4.2 C 程序实现举例 8
- 练习题1 12
- 上机指导1 14
- 第2章 变量和表达式 16
- 2.1 C 语言的字符集和单词 16
- 2.1.1 C 语言字符集 16
- 2.1.2 单词及其词法规则 16
- 2.2 常量 18
- 2.2.1 常量的种类 18
- 2.2.2 符号常量 21
- 2.3 变量 22
- 2.3.1 变量的三要素 22
- 2.3.2 变量的定义格式 24
- 2.3.3 变量的作用域 25
- 2.4 运算符和表达式 27
- 2.4.1 运算符的种类和功能 27
- 2.4.2 运算符的优先级和结合性 30
- 2.4.3 表达式的值和类型 31
- 2.4.4 表达式求值举例 32
- 2.5 类型转换 36
- 2.5.1 自动转换 36
- 2.5.2 强制转换 37
- 2.6 数组 37
- 2.6.1 数组的定义格式和数组元素的表示方法 37
- 2.6.2 数组的赋值 39
- 2.6.3 字符数组和字符串 42
- 练习题2 46
- 上机指导2 54
- 第3章 语句和预处理 56
- 3.1 表达式语句和复合语句 56
- 3.1.1 表达式语句和空语句 56
- 3.1.2 复合语句和分程序 57
- 3.2 选择语句 57
- 3.2.1 条件语句 57
- 3.2.2 开关语句 59
- 3.3 循环语句 61
- 3.3.1 while循环语句 61
- 3.3.2 do-while循环语句 62
- 3.3.3 for循环语句 63
- 3.3.4 多重循环 65
- 3.4 转向语句 67
- 3.4.1 goto语句 67
- 3.4.2 break语句 68
- 3.4.3 continue语句 68
- 3.5 类型定义语句 69
- 3.6 预处理功能 70
- 3.6.1 文件包含命令 70
- 3.6.2 宏定义命令 71
- 练习题3 72
- 上机指导3 77
- 第4章 指针和引用 78
- 4.1 指针和指针的定义格式 78
- 4.1.1 什么是指针 78
- 4.1.2 指针的定义格式 79
- 4.2 指针的运算 80
- 4.2.1 指针的赋值运算和增值运算 80
- 4.2.2 指针的比较运算和相减运算 81
- 4.2.3 指针运算和地址运算 82
- 4.3 指针和数组 83
- 4.3.1 指针可表示数组元素 83
- 4.3.2 字符指针和字符串处理函数 86
- 4.3.3 指向数组的指针和指针数组 88
- 4.4 引用 90
- 4.4.1 引用和引用的创建方法 91
- 4.4.2 引用和指针 92
- 练习题4 93
- 上机指导4 97
- 第5章 函数 98
- 5.1 函数的定义和说明 98
- 5.1.1 函数的定义 98
- 5.1.2 函数的说明方法 100
- 5.2 函数的参数和返回值 100
- 5.2.1 函数的参数 100
- 5.2.2 设置函数参数的默认值 101
- 5.2.3 函数返回值的实现 103
- 5.3 函数的调用 104
- 5.3.1 函数的传值调用 104
- 5.3.2 函数的引用调用 105
- 5.3.3 函数的嵌套调用 106
- 5.4 指针和引用作函数参数和返回值 107
- 5.4.1 指针作函数参数和返回值 107
- 5.4.2 引用作函数参数和返回值 109
- 5.5 重载函数和内联函数 110
- 5.5.1 重载函数 110
- 5.5.2 内联函数 113
- 5.6 函数的存储类 113
- 5.6.1 外部函数 114
- 5.6.2 内部函数 115
- 练习题5 116
- 上机指导5 120
- 第6章 类和对象(一) 122
- 6.1 类的定义格式和对象的定义方法 122
- 6.1.1 类的定义格式 122
- 6.1.2 对象的定义方法 124
- 6.1.3 对象成员的表示 125
- 6.2 对象的初始化 127
- 6.2.1 构造函数的功能、种类和特点 127
- 6.2.2 析构函数的功能和特点 128
- 6.3 数据成员的类型和成员函数的特性 130
- 6.3.1 类中数据成员类型的规定 130
- 6.3.2 成员函数的特性 131
- 6.4 静态成员 133
- 6.4.1 静态数据成员 133
- 6.4.2 静态成员函数 135
- 6.5 常成员 136
- 6.5.1 常数据成员 136
- 6.5.2 常成员函数 137
- 6.6 友元函数和友元类 138
- 6.6.1 友元函数 139
- 6.6.2 友元类 140
- 6.7 类型转换 141
- 6.7.1 类型的隐含转换 141
- 6.7.2 一般数据类型转换为类类型 142
- 6.7.3 类类型转换为一般数据类型 142
- 练习题6 143
- 上机指导6 149
- 第7章 类和对象(二) 151
- 7.1 对象指针和对象引用 151
- 7.1.1 对象指针 151
- 7.1.2 this指针 154
- 7.1.3 对象引用 155
- 7.2 对象数组和对象指针数组 157
- 7.2.1 对象数组 157
- 7.2.2 对象指针数组 158
- 7.2.3 指向对象数组的指针 159
- 7.3 子对象和堆对象 160
- 7.3.1 子对象 160
- 7.3.2 堆对象 162
- 7.4 类的作用域和对象的生存期 165
- 7.4.1 类的作用域 166
- 7.4.2 对象的生存期 166
- 7.5 结构的应用 167
- 7.5.1 结构变量和结构数组 168
- 7.5.2 使用struct定义类 171
- 练习题7 172
- 上机指导7 178
- 第8章 继承性和派生类 181
- 8.1 继承的概念 181
- 8.1.1 基类和派生类 181
- 8.1.2 单重继承和多重继承 182
- 8.1.3 派生类的定义格式 182
- 8.1.4 派生类成员的访问权限 183
- 8.2 单重继承 187
- 8.2.1 单重继承派生类的构造函数和析构函数 187
- 8.2.2 子类型和赋值兼容规则 193
- 8.3 多重继承 195
- 8.3.1 多重继承派生类的构造函数和析构函数 196
- 8.3.2 多重继承的二义性 198
- 练习题8 201
- 上机指导8 206
- 第9章 多态性和虚函数 209
- 9.1 运算符重载 209
- 9.1.1 运算符重载的概念 209
- 9.1.2 运算符重载的两种方法 210
- 9.1.3 运算符重载举例 214
- 9.2 静态联编和动态联编 217
- 9.2.1 联编的概念 217
- 9.2.2 虚函数 220
- 9.2.3 动态联编 221
- 9.2.4 虚析构函数 224
- 9.3 纯虚函数和抽象类 225
- 9.3.1 纯虚函数 225
- 9.3.2 抽象类 226
- 练习题9 227
- 上机指导9 233
- 第10章 C 语言文件的输入/输出操作 234
- 10.1 I/O流类库概述 234
- 10.1.1 输入/输出流 234
- 10.1.2 I/O流类库的主要功能 234
- 10.2 标准文件的输入/输出操作 235
- 10.2.1 屏幕输出操作 235
- 10.2.2 键盘输入操作 238
- 10.3 格式输出操作 241
- 10.3.1 使用流对象的成员函数进行格式输出 242
- 10.3.2 使用控制符进行格式输出 244
- 10.4 磁盘文件的操作 245
- 10.4.1 打开文件和关闭文件操作 245
- 10.4.2 文件的输入/输出操作 247
- 10.4.3 随机文件操作 250
- 练习题10 251
- 上机指导10 255
- 第11章 模板 257
- 11.1 模板的基本概念 257
- 11.2 函数模板 257
- 11.2.1 函数模板的定义格式 257
- 11.2.2 函数模板与模板函数 260
- 11.3 类模板 261
- 11.3.1 类模板的定义格式 261
- 11.3.2 类模板继承 265
- 练习题11 266
- 上机指导11 269
- 第12章 数据结构 271
- 12.1 几种常用的数据结构 271
- 12.1.1 栈 271
- 12.1.2 队列 274
- 12.1.3 线性链表 276
- 12.1.4 二叉树 280
- 12.2 查找和排序运算 284
- 12.2.1 查找运算 284
- 12.2.2 排序运算 290
- 练习题12 292
- 上机指导12 297
- 第13章 异常处理和命名空间 298
- 13.1 异常处理 298
- 13.1.1 C 的异常处理机制 298
- 13.1.2 异常与继承 305
- 13.1.3 构造函数和析构函数的异常处理 306
- 13.2 命名空间 308
- 13.2.1 命名空间的定义和使用方法 308
- 13.2.2 简化使用命名空间成员 311
- 13.2.3 标准命名空间 313
- 练习题13 313
- 上机指导13 318
- 附录A 字符的ASCII码表 320
- 附录B Microsoft Visual C 6.0集成开发工具简介 322
- 附录C C 标准库简介 329
- 参考文献 332