21天学通C++(第4版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-06 12:14:36

点击下载

作者:刘蕾

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

21天学通C++(第4版)

21天学通C++(第4版)试读:

前言

千里之行,始于足下!——老子“21天学编程系列”自2009年1月上市以来一直受到广大读者的青睐。该系列中的大部分图书从一上市就登上了编程类图书销售排行榜的前列,很多大中专院校也将该系列中的一些图书作为教材使用,目前这些图书已经多次印刷、改版。可以说,“21天学编程系列”是自2009年以来国内原创计算机编程图书最有影响力的品牌之一。

为了使该系列图书能紧跟技术和教学的发展,更加适合读者学习和学校教学,我们结合最新技术和读者的建议,对该系列图书进行了改版(即第4版)。本书便是该系列中的C++分册。

本书有何特色

1.细致体贴的讲解

为了让读者更快地上手,本书特别设计了适合初学者的学习方式,用准确的语言总结概念#用直观的图示演示过程#用详细的注释解释代码#用形象的比方帮助记忆。效果如下:

①知识点介绍 准确、清晰是其显著特点,一般放在每一节开始位置,让零基础的读者了解相关概念,顺利入门。

②范例 书中出现的完整实例,以章节顺序编号,便于检索和循序渐进地学习、实践,放在每节知识点介绍之后。

③代码清单 与范例编号对应,层次清楚、语句简洁、注释丰富,体现了代码优美的原则,有利于读者养成良好的代码编写习惯。对于大段程序,均在每行代码前设定编号便于学习。

④运行结果 对范例给出运行结果和对应图示,帮助读者更直观地理解范例代码。

⑤范例解析 将范例代码中的关键代码行逐一进行解释,有助于读者掌握相关概念和知识。

⑥贴心的提示 为了便于读者阅读,全书还穿插着一些技巧、提示等小贴士,体例约定如下:

提示:通常是一些贴心的提醒,让读者加深印象或提供建议,或者解决问题的方法。

注意:提出学习过程中需要特别注意的一些知识点和内容,或者相关信息。

警告:对操作不当或理解偏差将会造成的灾难性后果做警示,以加深读者印象。

经作者多年的培训和授课证明,以上讲解方式是最适合初学者学习的方式,读者按照这种方式会非常轻松、顺利地掌握本书知识。

2.实用超值的DVD光盘

为了帮助读者比较直观地学习,本书附带DVD光盘,内容包括多媒体视频、电子教案(PPT)和实例源代码等。

多媒体视频

本书配有长达12 小时教学视频,讲解关键知识点界面操作和书中的一些综合练习题。作者亲自配音、演示,手把手教会读者使用。

电子教案(PPT)

本书可以作为高校相关课程的教材或课外辅导书,所以作者特别为本书制作了电子教案(PPT),以方便老师教学使用。

职场面试法宝

本书附赠“职场面试法宝”,含常见的职场经典面试题及解答。

3.提供完善的技术支持

本书的技术支持论坛为:http://www.rzchina.net,读者可以在上面提问交流。另外,论坛上还有一些教程、视频动画和各种技术文章,可帮助读者提高开发水平。

推荐的学习计划表

本书作者在长期从事相关培训或教学实践过程中,归纳了最适合初学者的学习模式,并参考了多位专家的意见,为读者总结了合理的学习时间分配方式,列表如下:续表续表

本书适合哪些读者阅读

本书非常适合以下几类人员阅读:

从未接触过C++编程,但对C++有兴趣的自学人员;

各大中专院校的在校学生和相关授课老师;

了解一些C++,但还需要进一步学习的人员;

在某些需要使用C++编程的特殊领域的工作人员;

其他编程爱好者。

第一篇 C++数据表达篇

第1章 C++入门

C++语言是在C语言的基础上增加了面向对象程序设计的要素而发展起来的,本章将介绍C++的特点,以及其与C语言的区别。此外,将着重介绍C++的编译环境及使用该环境进行第一个C++程序的设计。在该设计基础上,重点介绍C++源程序的基本组成和基本元素。以下是对读者在学习本章内容时所提出的几个基本要求,也是本章希望能够达到的目的,让读者在学习本章内容时可以作为一个学习参照。

了解C++的历史及其特点。

掌握C++编译环境及第一个C++程序。

熟悉C++源程序的基本组成和组成元素。

1.1 C++概述

C++语言是一种应用较广的面向对象的程序设计语言,其除了继承了C语言全部的优点和功能外,还支持面向对象程序设计。C++现在已成为介绍面向对象程序设计的首选语言,也是当前一种十分流行和实用的程序设计语言。

1.1.1 C++的历史沿革

读者可能了解到,C++语言起源于C语言。1980年,美国贝尔实验室的Bjarne Stroustrup博士及其同事在C语言的基础上,从Simula 67中引入面向对象的特征,开发出一种过程性与对象性相结合的程序设计语言。最初称为“带类的C”,至1983年取名为C++。

后来,Stroustrup 和他的同事们又为 C++引进了运算符重载、引用、虚函数等许多特性,使之更加精练,于1989年后推出了AT&T C++ 2.0版。随后美国国家标准化协会ANSI(American National Standard Instiute)和国际标准化组织ISO(International Standards Organization)一起进行了标准化工作,并于1998年正式发布了C++语言的国际标准ISO/IEC:98—14882。各软件商推出的C++编译器都支持该标准,并有不同程度的拓展。

此后,C++经过了许多次改进、完善,发展成为现在的C++。目前的C++具有两方面的特点:其一,C++是C语言的超集,因此其能与C语言兼容;其二,C++支持面向对象的程序设计,使其被称为一种真正意义上的面向对象程序设计语言。

C++支持面向对象的程序设计方法,特别适合于中型和大型的软件开发项目。从开发时间、费用到软件的重用性、可扩充性、可维护性和可靠性等方面,C++均具有很大的优越性。

提示

C++可以认为是C语言的一个超集,这就使得许多C代码不经修改就可被C++的编译器编译通过。

1.1.2 C++与面向对象

由于 C++是一种面向对象的程序设计语言,因此具有面向对象程序设计有别于过程化设计的特点。面向对象程序设计是一种程序设计方法,其模仿了人们建立现实世界模型的方法。在面向对象程序设计中,现实世界中客观存在的事物都被称为对象,而具有相同特征的一类对象则可归纳为类。例如,张三是一个对象,而人则是一个类。面向对象程序设计的基础是对象和类。

C++中,对象是构成信息系统的基本单位,类(class)是对一组性质相同对象的描述。简单地说,类是用户定义的一种新的数据类型,是C++程序设计的核心。由于C++是一种面向对象语言,因此,面向对象程序设计的主要特征也是C++的主要特点,具体如下。

封装性:所谓封装就是将一组数据和与这组数据有关的操作集合组装在一起,形成一个能动的实体,也就是对象。C++中通过建立类这个数据类型来支持封装性。

继承性:继承是指一个类具有另一个类的属性和行为。这个类既具有另一个类的全部特征,又具有自身的独有特征。C++中将其称为派生类(或子类),而将其所继承的类称为基类(父类)。

多态性:多态是指不同的对象调用相同名称的函数,并可导致完全不同的行为。C++中的多态性通过使用函数重载、模板和虚函数等概念来实现。

近几年来,C++得到过许多扩展,使其具有更多独有的特点。C++模板是近几年来对此语言的一种扩展,模板是根据类型的参数来产生函数和类的机制,有时也称模板为“参数化的类型”。使用模板,可以设计一个对许多类型数据进行操作的类,而不需要为每个类型的数据建立一个单独的类。标准模板库(Standard Template Library,STL)和微软的活动模板库(Active Template Library,ATL)都基于C++语言扩展,这些在后续的章节中都将逐一介绍。

此外,C++标准可分为两部分:C++语言本身和C++标准库。C++标准库对于Visual C++是相当新的,C++标准库实现容器和算法的部分就是标准模板库STL。

标准模板库STL是数据结构和算法的一个框架,数据结构包括矢量、列表和映射等,算法包括这些数据结构的查找、复制和排序等。1994年7月,ANSI/ISO C++标准委员会投票决定接受STL为C++标准库的一部分,STL的产生是为了满足通用性的设计目标,而不是为了提高性能。

1.1.3 从C到C++

前面提到过,C++语言是对C语言的扩展,是C语言的超集。C++语言增强了C语言的能力,使得程序员能够提高编写程序的质量,并易于程序代码的复用。C++语言的ISO标准已在1997年11月被一致通过,于1998年8月被正式批准。

事实上,“C++”这个名字是由Rick Maseitti提出,到1983年夏被确定的。C++的创作灵感来源于当时计算机语言多方面的成果,特别是BCPL语言(Basic Combined Programming Language,它也是C语言的来源之一)和Simula 67语言(以面向对象为核心的语言),同时还借鉴了Algol 68。就如同它的名字表达的那样,C++语言是C语言的一个超集,它是一门混合型的语言,既支持传统的结构化程序设计,又支持面向对象的程序设计,这是C++语言成功流行的一个重要原因。

注意

C语言是结构化和模块化的语言,它是面向过程的。C++保留了C语言原有的所有优点,增加了面向对象的机制。

简单来说,C++与C完全兼容。C++既可用于结构化程序设计,又可用于面向对象的程序设计。C++对C的增强和扩展,主要表现在两个方面:

在原来面向过程的机制基础上,对C语言的功能做了不少扩充。

增加了面向对象的机制。

具体来说,C++与C相比,其优点在于:

与C语言兼容,既支持面向对象的程序设计,也支持结构化的程序设计。同时,熟悉C语言的程序员,能够迅速掌握C++语言。

修补了C语言中的一些漏洞,提供更好的类型检查和编译时的分析。使得程序员在C++环境下继续写C代码,也能得到直接的好处。

生成目标程序质量高,程序执行效率高。一般来说,用面向对象的 C++编写的程序执行速度与C语言程序不相上下。

提供了异常处理机制,简化了程序的出错处理。利用throw、try和catch关键字,使出错处理程序不必与正常的代码紧密结合,提高了程序的可靠性和可读性。

函数可以重载。重载允许相同的函数名具有不同参数表,系统根据参数的个数和类型匹配相应的函数。

提供了模板机制。模板包括类模板和函数模板两种,它们将数据类型作为参数。对于具体数据类型,编译器自动生成模板类或模板函数,它提供了源代码复用的一种手段。

1.2 程序设计方法

程序设计(Programming)是指设计、编制、调试程序的方法和过程。按照结构性质,有结构化程序设计与非结构化程序设计之分。前者是指具有结构性的程序设计方法与过程。它具有由基本结构构成复杂结构的层次性,后者反之。按照用户的要求,有过程式程序设计与非过程式程序设计之分。前者是指使用过程式程序设计语言的程序设计,后者指非过程式程序设计语言的程序设计。下面简单介绍两种程序设计方法:结构化程序设计和面向对象程序设计。

1.2.1 结构化程序设计

在程序设计方法的历史上,最早提出的方法是结构化程序设计,其核心是将程序模块化。早在1968年,Dijskstra就提到了结构化程序设计,之后引起了业内关于GOTO语句的讨论。经过不断地改进,结构化程序设计日臻完善。

提示

结构化程序设计方法主要使用顺序、选择、循环三种基本结构,形成具有复杂层次的结构化程序,此外,该方法要求严格控制GOTO语句的使用。

简单地说,结构化程序设计方法的主要特征如下:

采用“自顶而下,逐步求精”的设计思想。自顶而下是指从问题的总体目标开始,逐步求精是指层层分解和细化。“独立功能,单出、入口”的模块仅用三种(顺序、分支、循环)基本控制结构的编码原则。“独立功能,单出、入口”的模块结构减少了模块的相互联系,使模块可作为插件或积木使用,降低程序的复杂性,提高了程序可靠性。如图 1-1所示为一个典型的采用结构化程序设计的程序结构图。

结构化程序相比于非结构化程序有较好的可靠性、易验证性和可修改性;结构化设计方法的设计思想清晰,符合人们处理问题的习惯,易学易用、模块层次分明,便于分工开发和调试,且程序可读性强,其设计语言有Ada、Basic等语言。图1-1 结构化程序设计

1.2.2 面向对象程序设计

20世纪70年代中后期,由于结构化程序设计在进行大型项目设计时存在缺陷,于是面向对象程序设计方法(Object Oriented Programming,OOP)被提出,并逐步代替了传统的结构化程序设计方法,成为最重要的方法之一。

面向对象认为世界是由各种对象组成的,任何事物都是对象,复杂的对象可由较简单的对象以某种方式组成。由于面向对象的这种思想符合人们认识世界的观念,因此,面向对象程序设计一经提出,就得到了广泛的支持,至今已应用在各个领域。

面向对象程序设计方法是以“对象”为中心进行分析和设计的,使这些对象形成了解决目标问题的基本构件,即解决从“做什么”到“怎么做”的问题。其解决过程从总体上说是采用自低向上的方法,先将问题空间划分为一系列对象的集合,再将对象集合进行分类抽象,一些具有相同属性行为的对象被抽象为一个类,类还可抽象分为子类、超类(超类是子类的抽象)。采用继承来建立这些类之间的联系,形成结构层次。

提示

采用面向对象程序设计方法(即OOP)来进行程序设计,其本质上就是不断设计新的类和创建对象的过程。

如图1-2所示,为一个类和对象的关系示意图。图1-2 类和对象关系示意图

与传统的结构化程序设计方法相比,面向对象程序设计方法具有许多优点:

采用对象为中心的设计方式,再现了人类认识事物的思维方式和解决问题的工作方式。

以对象为唯一的语义模型,整个软件任务是通过各对象(类)之间相互传递消息的手段协同完成的。因此,能尽量逼真地模拟客观世界及其事物。

由于对象和类实现了模块化,类继承实现了抽象对象,以及任一对象的内部状态和功能的实现的细节对外都是不可见的,因此很好地实现了信息隐藏。由此建立在类及其继承性基础上的重用能力可应付复杂的大型的软件开发。

面向对象方法使得软件具有良好的体系结构、便于软件构件化、软件复用和良好的扩展性和维护性,抽象程度高,因而具有较高的生产效率。目前,面向对象程序设计语言主要有Java、C++等语言。

1.2.3 程序设计方法比较

通过1.2.1节和1.2.2节读者可以知道,目前流行的程序设计方法有很多,但真正具有广泛意义的是结构化程序设计、面向对象程序设计,以及20世纪90年代后逐渐发展起来的基于构件的程序设计方法。这些方法各有自己的特点,面向对象技术和构件技术是目前程序设计领域的热点,但是,结构化程序设计方法对面向对象程序设计中每个小模块(即成员函数)的设计也起到关键作用,两者各有特点。

结构化设计方法的设计思想清晰,易学易用,模块层次分明,便于分工开发和调试,编写出来的程序可读性强。

面向对象设计方法具有自下而上的特性,允许开发者从问题的局部开始,在开发过程中逐步加深对系统的理解。

由于面向对象程序设计是一种自下而上的程序设计方法,其不像过程式设计那样一开始就要用主函数概括出整个程序,面向对象设计往往从问题的一部分着手,一点一点地构建出整个程序。面向对象设计以数据为中心,以类作为表现数据的工具,是划分程序的基本单位。而函数在面向对象设计中成为类的接口。

从理论上来说,对于设计阶段的输出,无论采用哪一种风格的设计方法,都可以用任何一种程序设计语言来编码实现,但实际上对于具体的任务和设计风格,总可以在众多的编程语言中挑选出一种最适合的,使用它能够在程序运行效率、开发效率、软件可维护性等方面达到令人满意的折中。

1.3 C++开发环境——Visual C++ 6.0

C++是一种语言,要使用C++进行程序开发,必须要有编译环境。目前市面上较为流行的C++编译器主要有Borland公司推出的Borland C++和Microsoft公司推出的Visual C++。鉴于易用性和通用性,本书使用的是Visual C++ 6.0。本节将要介绍的是Visual C++ 6.0的集成开发环境(Integrated Development Environment,IDE),如图1-3所示即为该环境的主界面图。图1-3 Visual C++ 6.0集成开发环境

注意

本书中所有C++源程序都是在Visual C++ 6.0的集成开发环境下编译运行的。

本节将详细讲解Visual C++ 6.0集成开发环境中的各个组成部分及其作用,以便读者在以后的使用中能熟练地使用该环境。

1.3.1 工作区

工作区(Workspace)窗口一般在集成开发环境的左侧区域,该区域在Visual C++ 6.0刚刚启动时不显示任何内容,当加载了某个工程或新建了一个工程的时候,工作区中就会以树形结构显示开发项目中的各部分内容,类似于Windows 操作系统的资源管理器,如图1-4所示即为工程“Hello World”的工作区。图1-4 工作区窗口

如图 1-4 所示,读者可以看到,工作区有三个图标标签,其分别允许用户以三种不同的方法查看应用程序的各个部分。

Class View(类视图):将工程中所包含的类、事件、函数及变量等在类视图中以层次的结构排列,不仅可以使用户快速地找到它们,并且可以直接双击它们,以便用户在编辑区中操作源代码。

Resource View(资源视图):在Visual C++中,所有的菜单、图标、光标、图片、对话框等,都是以资源的形式进行管理的,而管理它们的就是Resource View。在这里,用户可以找到应用程序中的各种资源,并且可以编辑它们的ID号及样式、属性等,包括对话框的设计、图标、菜单等。

File View(文件视图):包含用户工程中的各种文件,用户可以查看并编辑。

提示

当工作区没有显示在 Visual C++ 6.0 的集成开发环境中时,可以通过单击【View】/【Workspace】菜单项来打开。

1.3.2 编辑区(Editor Area)

编辑区(Editor Area)位于集成开发环境的右侧,其是使用Visual C++ 6.0进行一切编辑的关键区域。在编辑C++源代码时,编辑区是代码编辑窗口;在设计菜单、对话框或图片图标时,编辑区是绘制窗口。如图1-5所示即是作为代码编辑窗口的编辑区。

总之,对代码或资源的一切操作都将在编辑区中进行,由于其重要性,编辑区是不能被窗口、菜单或工具栏所占据的。

1.3.3 输出窗口(Output Panel)

第一次启动Visual C++ 6.0时,也许看不到输出窗口(Output Panel)。直至完成第一个应用的编译之后,输出窗口就会自动出现在集成开发环境的底部。这时除非用户自己关闭它,否则输出窗口将一直开着。输出窗口会给出多种对用户的提示信息,主要包括如下三种:

编译程序的进展说明、警告及出错信息。

查找某个关键字所在的位置的信息。

在调试运行查看代码时,用户所关心的所有变量的值等信息。

例如,如图1-6所示即为在输出窗口中输出编译某个程序时,返回的相关信息,读者可以通过这些信息判断该应用程序是否有语法错误。图1-5 编辑区图1-6 输出窗口

注意

当用户不小心将输出窗口关闭后,该窗口将会在Visual C++需要显示有关信息时,自动打开并显示相关信息。

1.3.4 菜单栏、工具栏、状态栏

Visual C++ 6.0的菜单栏(Menu Bars)中包含了多个菜单项,每一个菜单项都对应着不同的功能,通过系统菜单可以完成Visual C++ 6.0的所有功能。下面将简要介绍这些菜单及其对应的功能。【File】菜单:主要提供工程及其文件的创建、打开、保存等功能,其中【Open/Save/Closes Workspace】等菜单项是对整个工作区进行操作。【Edit】菜单:主要给用户提供便捷的编辑文件的手段,如进行复制、粘贴、删除、查找等操作。在Visual C++ 6.0的【Edit】菜单中,除了Visual Studio其他软件中类似的撤销、查找等功能外,还增加了书签、高级、显示函数参数等菜单项。【View】菜单:主要用来改变窗口的显示方式,激活调试运行时所用的各个窗口。此外,该菜单中还包括编辑类的向导ClassWizard,该工具使用频率极高。【Insert】菜单:主要用于添加类、资源、文件、对象等到工程中。该菜单的菜单项比较少,但在具体应用中的使用非常多。【Project】菜单:主要用于添加文件到工程中并设置工程、导出生成文件等。工程(Project)是Visual C++ 6.0进行程序设计的基本单位,因此该菜单也非常重要,尤其是【Add To Project】菜单项用于为当前工程添加工程或文件,其使用较多。【Build】菜单:主要用于应用程序的编译、连接、调试和运行等。需要注意的是,只有当工程或源程序经过编译后才能显示Build菜单的所有功能。例如,当前新建了一个工程,Build菜单中的Execute等菜单项则不会显示,直到该工程通过编译才会显示。【Tools】菜单:主要用于选择或定制集成开发环境中的一些实用工具,如组件管理工具、控件注册工具及各种浏览窗口等。【Window】菜单:主要用于排列、打开、关闭集成开发环境中的各个窗口,快速打开某源文件,使窗口重新分离或组合等操作,或者改变窗口的显示方式,激活调用时所用的各个窗口。【Help】菜单:以不同方式提供大量的帮助信息及浏览所有的键盘快捷方式,该菜单中还提供了在Web上访问Microsoft所提供的联机帮助。

注意

除了上述菜单后,Visual C++ 6.0在特定环境下还将增加某些菜单。例如,当用户进入Debug调试环境时,将增加【Debug】菜单。

工具栏(Tool Bars)以一组按钮的形式提供了操作菜单的快捷方式;状态栏(Status Bar)以文本或进度条的形式显示应用程序目前的基本状态。

1.4 第一个C++程序——Hello World

为了让读者更好地理解本章,该节给出第一个C++程序代码“Hello World”,以及其在Visual C++ 6.0中的编译、连接和运行步骤。

1.4.1 创建源程序

C++源程序可以在C++编译器——Visual C++中创建。打开Visual C++ 6.0的集成开发环境,本书中采用的是Visual C++ 6.0 Enterprise Edition,即企业版,如图1-7所示。图1-7 Visual C++ 6.0集成开发环境【范例1-1】第一个C++程序——Hello World。该范例创建一个【C++ Source File】即C++源程序文件,在其中输入相关代码,实现运行后在输出窗口中输出文本“Hello World”字样。其操作步骤如下:单击菜单【File】/【New】,弹出如图1-8所示的对话框。单击【File】选项卡,选择其中的【C++ Source File】项,并在右侧填写文件名及路径。在该示例中,文件名为“Hello World”,选择路径后,单击【OK】按钮,完成建立,如图1-9所示。图1-8 【新建】对话框图1-9 新建C++源文件

提示

在本章中,只需要用到该对话框中的文件页框。单击标签【File】,对话框显示如图 1-9所示。在代码编辑框中输入实现输出的程序如代码清单1-1所示。

代码清单1-1

1  #include                 //预处理文件

2  void main()                     //主函数

3  {

4    cout<<"Hello World"<

5  }

上述代码中,#include 为运行该程序需包含的预处理文件。main 函数为主函数,由于该程序代码无返回值,因此在其前面加void关键字。cout语句为输出语句,用于在运行后输出“Hello World”字符串,endl为换行符。

至此,经过创建C++ Source File和在其中输入C++源代码的步骤后,源程序的创建就完成了。下面需要进行编译连接和调试运行工作。

1.4.2 编译连接

创建上述源程序完成后,读者可以保存后使用C++编译器对该源程序进行编译,以发现源程序中是否存在语法错误,编译完成后对其进行连接,以建立可执行文件。

在C++中,执行源文件查看运行效果需要先编译连接该源文件。Visual C++ 6.0中,使用菜单【Build】/【Compile】命令或快捷键【Ctrl+F7】进行编译,如图 1-10 所示;使用【Build】/【Build】菜单命令或快捷键【F7】进行连接,如图1-11所示。图1-10 编译图1-11 连接

注意

在编译连接过程中,如果源程序中有语法或连接错误,将不能通过编译连接,Visual C++系统在显示区给出详细错误信息,否则给出无错误信息,如图 1-12 所示为编译无错误下的显示,如图1-13所示为连接无错误下的显示。图1-12 编译结果图1-13 连接结果

1.4.3 调试运行

当通过编译连接后,就可以运行该程序查看运行结果了。单击菜单【Build】/【Execute】项目或使用快捷键【Ctrl+F5】运行源程序,如图1-14所示。【运行结果】运行程序后,系统给出一个命令提示符下的窗口显示运行结果。在该示例中,程序输出字符串“Hello World”,如图1-15所示。图1-14 运行图1-15 运行结果

警告

如果运行的输出结果与用户期望的不一致,那么就需要对该源程序进行功能调试,以找出逻辑上的错误。

至此,一个完整的C++程序的建立及运行就完成了。在本章的所有示例中,建立、编译连接、运行源程序的步骤均与其类似。

1.5 C++源程序组成元素

在C++语言的学习过程中,首先需要对C++的基本组成、基本符号、标识符和保留字等有一定的了解,它们是阅读和编写程序的基础。

1.5.1 基本组成

一般来说,一个标准的 C++程序通常由预处理命令、函数、语句、变量、输入/输出及注释等几个部分组成。

预处理命令:在C++程序中,预处理命令以“#”开始。C++提供三种预处理命令:宏定义命令、文件包含命令及条件编译命令。

函数:一个C++程序通常由若干个函数组成,这些函数可以是C++系统提供的库函数,也可以是用户根据需要编写的自定义函数。在这些函数中,必须有且仅有一个主函数main,不论主函数位于什么位置,该程序都是从主函数开始执行的。

语句:语句是组成程序的基本单元,它包括顺序语句、选择语句、循环语句等。所有的语句以分号结束,最简单的语句是空语句,它仅包括一个分号。

变量:在 C++程序中,需要将数据存放于内存单元中,而变量就是用来存储和访问内存单元中数据的标识符。变量有整型、字符型、浮点型等基本数据类型。

输入/输出:在C++程序中,经常要使用到输入和输出语句,用于接收用户的输入及返回程序运行结果。

注释:注释可以帮助读者阅读源程序,但并不参与程序的运行。【范例 1-2】C++的基本组成。该范例体现了一个标准 C++程序的基本组成,其包含预处理命令、函数、语句、变量、输入/输出和注释等部分,代码如代码清单1-2所示。

代码清单1-2

1  #include                //预处理命令

2  void main(void)                   //主函数

3  {

4  char name[10];                   //变量

5  cout<<"请输入姓名:";                 //输出

6  cin>>name[10];                   //输入

7  cout<<"欢迎使用Visual C++ 6.0"<

8  }【运行结果】同样在Visual C++ 6.0中新建一个C++ Source File文件后输入名称“1-2”,输入上述语句,编译并运行,其结果如图1-16所示。图1-16 C++基本组成【范例解析】上述程序代码使用到了C++程序的所有组成部分,其中主函数main中带有“;”的均为语句,以“//”开头的均为注释。这是一个简单的 C++程序,其中就包含了上述基本程序结构的所有组成部分,读者可仔细理解其各部分在程序中的作用。

提示

事实上,C++有许多优点是C语言所不具备的,主要体现在封装性(Encapsulation)、继承性(Inheritance)和多态性(Polymorphism),这将在后续章节陆续讲解。

1.5.2 基本符号

每种语言都有自己的一套符号,符号是组成程序的基本单位,它是由若干字符组成的具有一定意义的最小单元,如标识符、关键字、运算符、分隔符、常量、注释符等。这里组成符号的字符必须是这种语言字符集中的合法字符,在C++中规定了一个自己的字符集,其组成词法的基本符号主要有以下三类。

字母:大小写英文字母:A~Z,a~z共52个符号。

数字:数字字符:0~9共10个符号。

特殊字符:空格、!、#、%、^、&、*、_(下画线)、+、=、-、~、<、>、/、\、'、"、;、.、,、()、[]、{}。

1.5.3 标识符

标识符是程序员定义的词法符号,用它来命名程序中的一些实体。常见的有函数名字、类名、变量名、常量名、对象名、标号名、类型名等。C++规定标识符由大小写字母、数字符号和下画线组成,并且第一个字符必须是字母和下画线。在C++中定义标识符需要遵循一定的规则,如下:

标识符长度没有限制,但不同的编译系统有不同的要求,一般不超过31。

第一个字符必须是字母或下画线。

标识符中大小写是有区别的。XY,xy,xY,Xy都是不同的标识符。

标识符定义时应尽可能使用有意义的单词。

标识符不能与关键字相同。

中间不能有空格。

一般来说,标识符的有效长度为 32,也就是说,长度超过 32 个字符的标识符,若前 32个字符相同,那么认为是同一个标识符。

提示

定义标识符时不能使用C++语言中的保留字,如if、for、int等都不能用做标识符。C++的保留字将在下面予以介绍。

1.5.4 保留字

在C++程序中,保留字又称为关键字,是有特定含义的单词。对于保留字,在编程时不能用于其他用途。表1-1中列出了常用的保留字,其含义和用法在相关的章节中再做详细介绍。表1-1 C++常用保留字续表

警告

需要注意的是,读者在定义标识符的时候,不能定义与表1-1中同名的标识符,否则在程序运行时将出现错误。

1.5.5 分隔符

C++语言中分隔符又称标点符号,用来分隔单词和程序正文。C++中常用的分隔符如下。

空格符:用来做单词之间的分隔。

逗号:变量说明时分隔多个变量。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载