C++语言是一门传统的计算机程序设计高级语言,它兼有面向过程和面向对象的程序设计的特点,一直是一门应用面非常广泛、长盛不衰的计算机程序设计语言,是普通高等院校为计算机、信息、电子等工科专业开设的计算机程序设计的首选和主要的语言,本书主要内容有C++语言中每种语法成分的定义和作用,每种语句的组成和作用,顺序、分支、循环等基本程序设计方法,常量、变量、函数、表达式、文件等基本数据(运算)对象的使用,类的封装、继承、多态等面向对象的特性。
在写作风格和手法上力求体现便
于阅读和自学的特点,文字叙述浅显易懂,内容安排循序渐进,问题
分析简明透彻,整体结构贯通一体
C++语言程序设计课程是普通高等院校计算机、软件、信息
等专业的专业基础课或通识课程,目的是让学生了解和掌握进行计
算机程序设计的基本概念、知识和方法,为后续学习专业课程打下
良好基础。
《C++语言程序设计》是为普通高等院校初学计算机程序设计
语言的学生编写的教材。全书共10章,形成了一个完整体系,从头
到尾逐次展开,层层递进,环环相扣。在写作手法和意图上,尽量
做到深入浅出,条理有序,使文字叙述和举例说明互为印证,相得
益彰,以此降低学习难度,提高学习兴趣,便于教学以及读者自学
和参考。
本书第1章 C++语言概述,详细介绍了 C++语言中的基本
语法规则和程序组成,以及上机操作和运行 C++语言程序的集成
开发环境与一般过程,为学好后续章节做好铺垫。第2章数据类型
和表达式,学习它能够在程序设计中正确地定义和使用数据对象,
从而达到运算和处理数据的目的。第 3 章流程控制语句,介绍了
C++语言中所有分支、循环、转向类语句,这些是构成 C++程
序功能模块(函数)的基本语句。第4章数组和字符串,利用它们能
够使计算机程序保存和处理具有相同类型的大量数据。第5章指针,
它是用来访问数据对象的另一种方法和途径,有时比直接使用变量
访问数据更简便和有效。第6章函数,介绍了函数的定义、声明和
调用,每个 C++程序都是由一个或若干个函数模块组成的,通过
函数之间的调用和返回,实现整个程序运行的全过程。第7章结构
与联合,在程序设计中利用它们能够保存和处理具有相同记录格式
的表格文档中的大量数据。第8章类与对象,介绍了一种较复杂的
用户自定义数据类型———类,它既包含状态又包含行为,由它定义
出的对象既具有状态特征,又具有行为特征,而且能够把属于自己
的特征很好地隐藏起来。第9章类的继承与多态,同第8章一起构
成了面向对象程序设计的基础,使 C语言发展和提升为既面向过程
又面向对象的 C++程序设计语言。第10章 C++流,介绍了数据
文件的定义和使用,利用它能够访问和处理永久保存在外部介质上
1
■ C++语言程序设计
的数据文件。
本书的每一章都配有多样而丰富的课后练习题,供读者练习和使用,以便检查学
习效果。课后练习题参考解答将通过出版社网站免费提供。
尽管我们做出了很大努力,由于水平有限,本书中难免存在不足或错误,敬请广
大师生和读者给予批评指正。
作 者
2021年秋于北京
徐孝凯,男,教授,国家开放大学(中央广播电视大学)计算机科学与技术专业《C语言程序设计》课程主讲。1955年3月出生,1982年8月毕业于南京理工大学计算机系,现任国家开放大学(中央广播电视大学)理工教学部计算机科学与技术学院教授。
第1章 C++语言概述 /1
1.1 引言…………………………………………………… 1
1.2 C++字符集 ………………………………………… 2
1.3 C++单词 …………………………………………… 4
1.4 C++语句 …………………………………………… 6
1.5 C++函数 …………………………………………… 7
1.6 C++程序结构 …………………………………… 12
1.7 VC++ 6.0集成开发环境 ……………………… 14
习题1 ……………………………………………………… 25
第2章 数据类型和表达式 /28
2.1 数据类型 …………………………………………… 28
2.2 常量 ………………………………………………… 31
2.3 变量 ………………………………………………… 35
2.4 运算符和表达式 …………………………………… 39
2.5 常用的系统函数 …………………………………… 47
习题2 ……………………………………………………… 52
第3章 流程控制语句 /57
3.1 概述 ………………………………………………… 57
3.2 选择类语句 ………………………………………… 57
3.3 循环类语句 ………………………………………… 66
3.4 跳转类语句 ………………………………………… 82
习题3 ……………………………………………………… 85
1
■ C++语言程序设计
第4章 数组和字符串 /92
4.1 数组的概念 ……………………………………………………………… 92
4.2 一维数组 ………………………………………………………………… 93
4.3 二维数组 ………………………………………………………………… 97
4.4 使用typedef语句定义数组类型 …………………………………… 102
4.5 数组的应用 ……………………………………………………………… 104
4.6 字符串 …………………………………………………………………… 115
4.6.1 字符串的概念 ……………………………………………………… 115
4.6.2 字符串函数 ………………………………………………………… 118
4.6.3 字符串应用实例 …………………………………………………… 121
4.6.4 字符串类型 ………………………………………………………… 125
习题4…………………………………………………………………………… 127
第5章 指针 /132
5.1 指针的概念 ……………………………………………………………… 132
5.2 指针变量 ………………………………………………………………… 133
5.3 指针运算 ………………………………………………………………… 139
5.4 指针与数组 ……………………………………………………………… 142
5.4.1 指针与一维数组 …………………………………………………… 142
5.4.2 指针与二维数组 …………………………………………………… 145
5.5 引用变量 ………………………………………………………………… 146
5.6 动态存储分配…………………………………………………………… 148
习题5…………………………………………………………………………… 155
第6章 函数 /161
6.1 函数定义 ………………………………………………………………… 161
6.1.1 函数定义格式 ……………………………………………………… 161
6.1.2 函数定义格式举例 ………………………………………………… 162
6.1.3 有关函数定义的几点说明 ………………………………………… 163
6.2 函数调用 ………………………………………………………………… 165
6.2.1 函数调用格式 ……………………………………………………… 165
6.2.2 函数调用过程 ……………………………………………………… 166
6.2.3 函数调用举例 ……………………………………………………… 169
6.3 变量作用域 ……………………………………………………………… 173
6.3.1 作用域分类 ………………………………………………………… 173
2
目 录 ■
6.3.2 具有不同作用域对象的程序举例 ………………………………… 175
6.4 递归函数 ………………………………………………………………… 181
6.5 函数重载 ………………………………………………………………… 184
6.6 模板函数 ………………………………………………………………… 186
6.7 函数指针 ………………………………………………………………… 191
习题6…………………………………………………………………………… 193
第7章 结构与联合 /198
7.1 结构和联合的概念 …………………………………………………… 198
7.2 结构的定义 ……………………………………………………………… 198
7.3 结构变量的定义和初始化 …………………………………………… 202
7.4 结构成员的访问 ……………………………………………………… 205
7.5 使用结构的程序举例 ………………………………………………… 205
7.6 结构与函数 ……………………………………………………………… 210
7.7 结构与运算符重载 …………………………………………………… 213
7.7.1 运算符重载的概念 ………………………………………………… 213
7.7.2 用一般函数实现对自定义数据类型的运算功能 ………………… 214
7.7.3 用运算符重载函数实现对自定义数据类型的运算功能 ………… 217
7.7.4 运算符重载函数应用举例 ………………………………………… 221
7.8 结构与链表 ……………………………………………………………… 224
7.9 联合 ……………………………………………………………………… 229
习题7…………………………………………………………………………… 236
第8章 类与对象 /243
8.1 类的概念与定义 ……………………………………………………… 243
8.2 类的运算符重载成员函数 …………………………………………… 249
8.3 构造函数 ………………………………………………………………… 253
8.3.1 无参构造函数和带参构造函数 …………………………………… 253
8.3.2 拷贝构造函数 ……………………………………………………… 258
8.3.3 赋值重载函数 ……………………………………………………… 259
8.3.4 构造函数中的初始化表 …………………………………………… 260
8.4 析构函数 ………………………………………………………………… 261
8.5 友元函数和友元类 …………………………………………………… 263
8.6 类的应用举例…………………………………………………………… 269
习题8…………………………………………………………………………… 276
3
■ C++语言程序设计
第9章 类的继承与多态 /283
9.1 类的继承 ………………………………………………………………… 283
9.1.1 类的继承性的概念 ………………………………………………… 283
9.1.2 派生类定义的格式 ………………………………………………… 283
9.1.3 派生类定义格式举例 ……………………………………………… 285
9.1.4 派生类应用举例 …………………………………………………… 293
9.2 类的虚函数与多态性 ………………………………………………… 297
9.3 类的静态成员…………………………………………………………… 302
9.3.1 静态数据成员 ……………………………………………………… 302
9.3.2 静态函数成员 ……………………………………………………… 304
9.4 模板类 …………………………………………………………………… 305
习题9…………………………………………………………………………… 314
第10章 C++流 /321
10.1 C++流的概念 ……………………………………………………… 321
10.2 输入输出格式控制 …………………………………………………… 323
10.2.1 ios类中的枚举类型 ……………………………………………… 323
10.2.2 ios类中的成员函数 ……………………………………………… 325
10.2.3 格式控制符 ………………………………………………………… 328
10.3 文件操作 ……………………………………………………………… 331
10.3.1 文件的概念 ………………………………………………………… 331
10.3.2 文件的打开和关闭 ………………………………………………… 333
10.3.3 字符文件的访问操作 ……………………………………………… 335
10.3.4 字节文件的访问操作 ……………………………………………… 343
10.4 字符串流 ……………………………………………………………… 350
习题10 352
附录 ASCII代码表 /358
参考文献 /359