《新标准C++程序设计 第2版》严悍,陆建峰,衷宜编著|(epub+azw3+mobi+pdf)电子书下载
图书名称:《新标准C++程序设计 第2版》
- 【作 者】严悍,陆建峰,衷宜编著
- 【丛书名】“十三五”江苏省高等学校重点教材(编号:2020-1-092)
- 【页 数】 564
- 【出版社】 南京:东南大学出版社 , 2022.11
- 【ISBN号】978-7-5766-0287-6
- 【价 格】108.00
- 【分 类】C++语言-程序设计
- 【参考文献】 严悍,陆建峰,衷宜编著. 新标准C++程序设计 第2版. 南京:东南大学出版社, 2022.11.
图书封面:
图书目录:
《新标准C++程序设计 第2版》内容提要:
全书共15章,分为两部分:第1部分(前8章)主要介绍命令式编程与函数式编程,第2部分(后7章)主要介绍对象式编程和基于模析的泛型编程。本书既可作为高等学校理工科各专业学习、实践和应用C++的基础教材,也适合作为软件工程开发人员和科研人员的参考用书。
《新标准C++程序设计 第2版》内容试读
第1章概述
本章主要介绍C+语言的起源、发展概况和特点,以及C++程序的基本结构、面向对象
程序设计的基本概念和简单的上机操作过程。
1.1C+语言发展历史
C+语言是在C语言的基础上逐步发展和完善的,C语言则是吸收了其他高级语言的优
点逐步成为实用性很强的语言。
20世纪60年代,Martin Richards开发了BCPL(Basic Combined Programming Language)语言。1970年,Ken Thompson在BCPL语言的基础上发明了实用的B语言。1972年,贝尔实验室的Brian W.Kernighan和Dennis M.Ritchie在B语言的基础上进一步对其充实和完善,设
计出C语言,并在1978年出版了著名的《C编程语言》一书,史称“K&R”。此后C语言多次
改进,得到广泛应用。Unix/Linux操作系统就是基于C语言开发的。
C语言具有以下特点:
①结构化编程语言。C语言以函数作为基本模块,语法简洁,使用灵活方便。
②具有一般高级语言的特点,又具有汇编语言的特点。除了提供对数据进行算术运算、
逻辑运算、关系运算之外,C语言还提供了二进制整数的位运算。用C语言开发的应用程序,
不仅结构性较好,且程序执行效率高。
③可移植性较好。在某一种计算机上用C语言开发的应用程序,源程序经少许更改或不
用更改,就可以在其他型号和不同档次的计算机上重新构建运行。
④编程自由度大,运行错误比较多而且较难解决。指针是C语言的灵魂,精通指针的程
序员可以编写出非常简洁、高效的程序,但其不易理解,而且出错难以排除。对初学者而言,
掌握C语言指针并不容易。
随着C语言的不断推广,C语言存在的一些不足也开始显露出来。例如,数据类型检
查机制比较弱;缺少代码重用机制;以函数为模块的编程不能适应大型复杂软件的开发与维护。
1980年,贝尔实验室的Bjarne Stroustrup博士及其同事对C语言进行了改进和扩充,他们把Simula67语言中的类引入到C中,并称其为“带类的C”。1983年,Rick Maseitti提议将改进后的C语言命名为C++语言(即C Plus Plus)。之后C++语言又扩充了虚函数、运算符重载、模板、异常等概念,功能日趋完善。
C+语言除继承了C语言的特点外,还具有以下特点:
①C+是C的一个超集,它基本上具备了C语言的所有功能。一般情况下C语言源代码
不作修改或略作修改,就可在C+环境下构建运行。
·1·
新标准C+程序设计(第2版)
②C++是一种面向对象编程语言。面向对象编程的特点是封装性、继承性和多态性。
类作为程序的基本模块,封装性隐藏了模块内部的实现细节,而使外部使用更方便、更安全;继承性提高了模块的可重用性,而且使程序结构更贴近现实概念的描述;多态性使行为的抽象规范与具体实现相互协调,使行为的一致性和灵活性得到统一。抽象编程和模板提供更好的可重用性,异常处理则增强了编程的可靠性,这些特征都非常适合大型复杂软件的编程实现。
③C+语言程序可理解性和可维护性更好。对于大型软件的开发维护而言,这一特点非
常重要。
1.2一个简单的C+程序
开发工具为了区分C语言和C+语言程序,约定当源程序文件的扩展名为“.c”时,为C语言程序;文件的扩展名为“.c即”时,则为C++程序。本书中除做特殊说明外,所有源程序文件扩展名均为“.cpp”。
下面通过一个简单的实例,说明C+程序的基本结构及其特点。
例1.1根据输入的半径求出一个圆的面积,并输出计算结果。#include using namespace std;int main(void){
float r,area;
//说明两个变量:半径r和圆面积area
cout<<"输入半径r=";
//显示提示符
cin>>r;
//从键盘上输入半径变量r的值
area=3.1415926*r*r;
//计算圆面积
/*输出半径和圆面积*/
cout<"半径="<<
//输出变量x的值
cout<<"圆面积="<<<\n';
/输出圆面积的值
return 0;
//main返回,停止程序
使用Visual C+集成环境,首先创建一个控制台应用项目,然后添加一个源文件,命名为©x01O1.cpP,再将以上内容输入到源文件中;接着“生成解决方案”构建可执行程序,成功之后再“开始执行(不调试)”(Crl+F5)该程序。
该程序在执行时出现一个DOS命令窗口,并显示提示信息。假设键盘输入3.5,显示结
果如下:
输入半径r=3.5天不半径=3.5
圆面积=38.4845
下面对程序的基本结构及各语句进行说明。
(1)包含文件:第1行是#include,称为包含指令,指定一个文件,是标准输入输出流文件。如果要从键盘上输入数据cin,或将要在显示器上输出结果cout,就应包含该文件。一般程序都需要这个指令,有关编译预处理将在第5章介绍。第2行的usig指令用于导人std命名空间,以简化cin和cout的使用。前两行对于大多数程序都一样。
(2)注释:是一段文本信息,用来说明程序功能或方法。在C+程序任何位置都可插人
注释。注释对程序执行不起作用,但可增加程序的可读性和可理解性。有两种注释(上面例子
·2.
第1章概述
中包含了这两种注释):
①传统C注释,用“/*”和“*/”把一行或多行文本括起来;
②C+单行注释,用“/”开头到本行结束为止的一行文本。
(3)主函数main:main函数称为主函数,每个C+程序都有且仅有一个主函数,程序从主函数开始执行。
(4)花括号对“{}”:每个函数体都是以“{”开始,以“}”结束。函数中会出现嵌套的花括号,表示复合语句或作用域。花括号一定要配对使用。
(5)语句:一个函数体中包含有多条语句,每条语句以分号“;”结束。各种语句将在第4章介绍。需要指出的是,最后的“return 0;”语句可省略,但建议不要省。
(6)C+语言没有专门的输入输出语句,输入输出是通过函数调用来实现的(用ci>>实现输人,用cout<
(7)程序中所有名称都严格区分大小写。
1.3C++程序的开发步骤
针对一个实际问题,用C+语言设计程序时,通常要经过如图1.1所示的几个基本步骤:
源程序
需求分析
设计编程
编译
cpp/h
执行
可执行文件
连接
目标文件
exe
obj
图1.1程序开发的基本步骤
(1)需求分析,即根据要解决的实际问题分析所有需求,并用合适的方法、工具进行详细描述。如果需求分析错误,就可能导致下面的编程完全失去意义。
(2)设计编程,即根据需求先设计解决方案,然后将解决方案用C++程序实现,再利用
C+集成环境将设计好的源程序输入到计算机文件中。源文件的扩展名为cp即,也可能是扩展名为h的头文件。如果设计方案错误将导致程序不能满足需求。代码编辑器往往能区分C++语言的关键字、运算符和标识符,并用不同颜色显示,以方便查看。
(3)编译,即编译源程序生成目标程序。如果有语法或语义错误,要根据提示信息返回到上一步骤修改源程序文件,直到消除所有编译错误。编译后为源程序产生目标文件,目标程序文件的扩展名一般为obj或o。完成编译的工具统称为编译器(compiler)。
(4)连接,即将目标文件连接为可执行文件。将一个或多个目标程序与程序所调用的库函数连接后,生成一个可执行文件。Windows可执行文件扩展名为exe,Linux可执行文件往往没有扩展名。如果多个文件之间函数调用有错误,此时将给出连接错误信息。完成连接的工具称为连接器(linker)。
(5)执行,即运行可执行程序文件,输人测试数据,并分析输出结果。如果不满足需求或者与预期不同,就要返回到第(1)步或第(2)步重复以上过程,直至得到正确结果。可执行文
·3.
新标准C+程序设计(第2版)
件有两个版本,一个是用于调试程序的Dbug版本,文件比较大,包含了源代码调试信息;
一个是用来发布软件产品的Release版本,文件比较小,没有调试信息,往往优化了编码。
1.4开发工具简介
本书主要采用Visual Studio2019(下文简称VS或VC,版本为16.11+)作为开发环境,同时兼顾DevC+与GCC11。
1.4.1VS2019
VS支持多种编程语言,本书只用其中的Visual C.+,简称VC。相对于其他工具,VS的优点如下:①标准化程度较高;②文档较齐全;③代码编辑器对关键字、预处理指令、头文件、函数调用等能提示补全,可进行静态语法查错、静态编译、类型推导、常量计算等;④编译错误信息显示是中文,非常适合初学者;⑤调试功能强大。缺点如下:①安装需要联网且过程较慢,磁盘空间要求大;②打开源文件后不能直接编译或自动创建项目,需要先创建项目再加入源文件。
如图1.2所示,VS界面右边是解决方案资源管理器。一个解决方案可包含一个或多个项
目,一个项目可包含一个或多个源文件,并产生一个与项目同名的可执行程序。页面左上角显示当前解决方案的名称。一个项目的演化过程如下:
d件D鞋甲随0自相巴生肃D颗D数⊙分折0工填①r黄DPm一口×
言DD新助的
0·08,命■9·《,,s
二上本地n一语:国园,白市:哈un,只
101X
·金鼻范国)
。0ani0
00鱼n。·20®
winclude using namespace std;
Bint main(void){
可航方离“n1”0个领阳/共1个
float r,area:
/说明两个变量:半径r和圆面积area
4图nl
5
cout“输入半径r“;
,0引用,摩外等依制顺
67
c1n》>r;
/从键盘上输入半径变量的值
物头文件
area■3.1415926。r。r;/计圆面积
。产源文件
/输出半径和圆面积"/
9
cout《"半径."《《r(\n':
//输出变量的值
物源文件
10
cot父面积\n';
//0山面折o
112
return 8;
/ain返回,停止程序
13
14
输决方减资管理器:更或属性
输出来源:生
列璃编出
图1.2VS2019开发C+程序界面
(1)创建、配置项目或打开已有项目。首先点击“文件”→“新建”→“项目”,选择“控制台应用”(如图1.3所示);下一步是确定项目名称、储存位置等,然后创建项目,之后就可以打开该项目来执行大多数程序,而不用再创建新项目。
4
第1章概述
0
创建新项目
明
最近使用的项目棋板®)
所有通套
所有平台心
所有冷相共型)
芍加山异不精攻的装袋eRa:网aor
G件m整制
囚子山R山文白6如n
c6知amg制金
省山
G小离里检制金集
窗行面P用利a。
-Gm高国
空
下-*m
图1.3创建控制台应用
接下来是设置该项目的语言版本,即点击菜单中的“项目”→“x属性”(x是前面确定的项
目名)→“配置属性”→“常规”→“C+语言标准”,然后选择“预览-最新C+工作草案中的功
能(/std:c+latest)”(如图1.4所示)。
图性的到
☒
用序)
10.0最童安的面本)4:adst。2019(142)
预面一最新C种工作草离中的功能Uatd:e+1atst)
四c4+14标t41
I0C+17标重Uat士c+17)项自.
铺译器将强肽行的GH通言标准,建议尽可餐使用量断所本。Utdc+14小/a1d:e+1T7,/at4+1atat)
旋寸消门应用
图1.4选择C+语言标准
注意:VS2019默认标准为C+14,这也是最低标准,不能再选择I旧标准(如C++11)。我
们所选择的/std:c+latest目前指的是C+20标准。
(2)加入源文件。点击项目中的“源文件”,右键点击“添加”→“新建项”或“现有项”,即可新建源文件或加入已有源文件。也可用鼠标从文件管理器中选择一个或多个文件拖入。
(3)编码。打开源文件,即可修改或编写源文件代码。
.5.
新标准C+程序设计(第2版)】
(4)构建。在菜单栏依次选择“生成”→“生成解决方案”(Ctrl+Shift+B),就是编译和连接(即构建)。如果有错,则返回第(2)步或第(3)步;如果成功,就生成exe可执行文件。
(5)运行。在菜单栏依次选择“调试”→“开始执行(不调试)”(Ctl+F5),启动控制台窗口交互。
(6)如果运行有错,返回第(2)步或第(3)步,直到运行无错。
(7)关闭项目。在菜单栏依次选择“文件”→“关闭解决方案”,即关闭所有源代码窗口。
注意:VS2019不能先打开一个源文件再启动构建,而是要求先创建或打开一个项目,再加
入源文件,然后才能构建运行。建议先创建一个项目,以后每次都先打开该项目,然后添加或移除源文件。大部分程序都运行在x86的Dbug模式下,除非特别说明。
1.4.2DevC+
本书DevC+采用的是老版本5.11(含编译器TDM-GCC4.9.2)和新版本6.7.5(含编译
器TDM-GCC10.3.0)。
DvC+5.11的优点如下:①安装运行简单快捷,适合初学者完成C+14之前的练习和
在线测验:②支持32位和64位编译:③可直接打开源文件处理,对当前源文件编译按F9,运
行按F10。在编译前应设置编译器选项,以支持C+14,否则默认为旧标准。设置过程为点击
“工具”→“编译器选项”,然后输入编译器选项:-std=c+1y(如图1.5所示)。
编译器达项
设定编译器置
TDM-GCC 4.9.2 32-bit Debug
编泽器代码生成/优化目录程序反编泽时加入以下命令:
-std=c++ly
图1.5DevC+5.11编译设置支持C+14
DevC+5.11的缺点如下:①需要人工添加编译器选项来支持新的标准,例如C+11为
-std=c+11,C+14为-std=c+1y;②C+语言标准较低,仅支持C+11和C++14的部
分标准,不支持C++17与C+20;③代码编辑器不支持界面即时编译、类型推导与常量计
算等。
DevC+6.7.5的优点是支持从C++11到C++20新标准的大部分特征,如概念、协程(尚不支持模块),支持非char字符的中文字符串处理(但不完整),能支持线程;缺点是仅支持64位编译,不支持界面即时编译、类型推导与常量计算等。
DvC+6.7.5选择语言标准可以不用添加编译器选项,而是在“编译器配置”页面中选择
“代码生成/优化”,然后选择“代码生成”,再在“语言标准”中下拉选择“IS0C+20”即可(如
图1.6所示)。
·6·
···试读结束···