这段程序的功能应该是不言自明了。
另外还需要提醒一下的是,在C语言中,你只能在函数外部或花括号开始的地方定义好所有变量,而在C++中,你可以在任何语句可以出现的地方定义变量,这也使得程序更为清晰。
如上age的定义。
2.3常用开发环境
学习C++需要一个合适的开发环境,下面简要介绍了几个常见的集成开发环境(IDE)。
其中的MinGW、MinGWDeveloperStudio、DevC++、Eclipse/CDT等都是免费资源。
2.3.1MinGWDeveloperStudio
MinGW(MinimalGNUforWindows)是一组免费的可以自由分发的头文件和库文件,它包含了可用于Windows环境下的GNU工具集合,因此不用借助任何第三方C运行库就可用于开发Windows程序。
MinGW对C++标准的支持相当好。
MinGWDeveloperStudio是一个跨平台的C/C++集成开发环境(IDE),它使用MinGW作为编译器,具有类似MSVisualStudio的操作界面,非常容易上手。
你可以在下载MinGWDeveloperStudio,然后安装它。
新建工程。
图21在MinGWDeveloperStudio中新建立Win32ConsoleProject
新建程序文件。
图22在MinGWDeveloperStudio工程中新建立程序文件
输入代码,保存,构建,运行。
其调试功能有,设置断点,单步执行,添加查看等。
图23构建MinGWDeveloperStudio工程
2.3.2DevC++
DevC++是一个全功能的IDE,它可以采用GCC,MinGW或Cygwin作为编译器。
你可以从或
新建工程。
图24
新建程序文件,输入代码。
保存,编译,运行。
图25
其调试功能有添加断点,单步执行,添加查看等。
2.3.3VisualC++6.0
VisualC++是MicrosoftVisualStudio中的C++开发环境,它界面友好,操作方便,但是对C++标准的支持不太理想。
新建工程。
图26
新建程序文件。
图27
输入代码,保存,编译,运行。
图28
其调试功能非常强大,可以设置断点,单步执行,查看变量和调用堆栈等。
2.3.4Eclipse/CDT/MinGW
Eclipse是一个优秀的开发平台,它采用插件工作方式,各种开发工具都以插件的形式组织。
其懒加载工作机制,使得每个插件只有在需要时才被加载,所以安装了众多插件之后,它的运行速度几乎不受影响。
CDT(C/C++DevelopmentTools)是Eclipse中的C++开发工具,也是以插件的形式提供的。
CDT本身不带任何编译器,相反它认为提供编译器是操作系统的事,而CDT只是调用编译器完成工作。
MinGW(MinimalGNUforWindows)是可用于Windows环境下的GNU工具集,这里仅使用其C/C++编译器。
下面介绍安装和配置的一般步骤。
安装Eclipse
从www.eclipse.org下载Eclipse,解压缩后即完成安装。
解压后的目录结构如下。
图29
注意:
Eclipse需要JRE(JavaRuntimeEnvironment),可在下载并安装。
安装CDT
从www.eclipse.org下载CDT,解压缩到Eclipse中。
启动Eclipse,选择Help|AboutEclipsePlatform|Plug-inDetails可以看到已经安装的CDT插件。
安装MinGW
从www.mingw.org指定的位置下载并安装MinGW。
配置
必须设置相应的环境变量,CDT才能找到MinGW。
表21
环境变量
设置
PATH
C:
\MinGW\bin
C_INCLUDE_PATH
C:
\MinGW\include
CPLUS_INCLUDE_PATH
C:
\MinGW\include\c++\3.2.3;C:
\MinGW\include\c++\3.2.3\mingw32;C:
\MinGW\include\c++\3.2.3\backward;C:
\MinGW\include
LIBRARY_PATH
C:
\MinGW\lib
注意:
1)以上假设MinGW安装在C:
盘。
2)CDT默认调用make进行编译和连接,可以简单地将mingw32-make.exe改名为make.exe,当然也可以修改CDT中的工程属性设置解决这个问题。
使用Eclipse/CDT
在Eclipse中新建C++工程。
图210
在工程中新建文件,输入程序并保存。
Eclipse自动编译并连接,生成可执行程序。
图211
运行程序,可以看到结果。
2.4阅读材料
2.4.1C++的历史
以下内容摘自维基百科——自由的百科全书之http:
//en.wikipedia.org/wiki/C_Plus_Plus。
HistoryofC++
C++(pronounced"seeplusplus")isageneral-purposecomputerprogramminglanguage.Itisastaticallytypedfree-formmulti-paradigmlanguagesupportingproceduralprogramming,dataabstraction,object-orientedprogramming,andgenericprogramming.Duringthe1990s,C++becameoneofthemostpopularcommercialprogramminglanguages.
BellLabs'BjarneStroustrupdevelopedC++(originallynamed"CwithClasses")duringthe1980sasanenhancementtotheCprogramminglanguage.Enhancementsstartedwiththeadditionofclasses,followedby,amongmanyfeatures,virtualfunctions,operatoroverloading,multipleinheritance,templates,andexceptionhandling.TheC++programminglanguagestandardwasratifiedin1998asISO/IEC14882:
1998,thecurrentversionofwhichisthe2003version,ISO/IEC14882:
2003.Newversionofthestandard(knowninformallyasC++0x)isbeingdeveloped.
InCandC++,theexpressionx++increasesthevalueofxby1(calledincrementing).Thename"C++"isaplayonthis,suggestinganincrementalimprovementuponC.
StroustrupbeganworkonCwithClassesin1979.TheideaofcreatinganewlanguageoriginatedfromStroustrup'sexperienceprogrammingforhisPh.D.thesis.StroustrupfoundthatSimulahadfeaturesthatwereveryhelpfulforlargesoftwaredevelopmentbutwastooslowforpracticaluses,whileBCPLwasfastbuttoolowlevelandunsuitableforlargesoftwaredevelopment.WhenStroustrupstartedworkinginBellLabs,hehadtheproblemofanalyzingtheUNIXkernelwithrespecttodistributedcomputing.RememberinghisPh.D.experience,StroustrupsetouttoenhancetheClanguagewithSimula-likefeatures.Cwaschosenbecauseitisgeneral-purpose,fast,andportable.Atfirst,class(withdataencapsulation),derivedclass,strongtypechecking,inlining,anddefaultargumentwerefeaturesaddedtoC.ThefirstcommercialreleaseoccurredinOctober1985.
In1983,thenameofthelanguagewaschangedfromCwithClassestoC++.Newfeaturesthatwereaddedtothelanguageincludedvirtualfunctions,functionnameandoperatoroverloading,references,constants,user-controlledfree-storememorycontrol,improvedtypechecking,andnewcommentstyle(//).In1985,thefirsteditionofTheC++ProgrammingLanguagewasreleased,providinganimportantreferencetothelanguage,astherewasnotyetanofficialstandard.In1989,Release2.0ofC++wasreleased.Newfeaturesincludedmultipleinheritance,abstractclasses,staticmemberfunctions,constmemberfunctions,andprotectedmembers.In1990,TheAnnotatedC++ReferenceManualwasreleasedandprovidedthebasisforthefuturestandard.Lateadditionoffeaturesincludedtemplates,exceptions,namespaces,newcasts,andaBooleantype.
AstheC++languageevolved,astandardlibraryalsoevolvedwithit.ThefirstadditiontotheC++standardlibrarywasthestreamI/OlibrarywhichprovidedfacilitiestoreplacethetraditionalCfunctionssuchasprintfandscanf.Later,amongthemostsignificantadditionstothestandardlibrary,wastheStandardTemplateLibrary.
Afteryearsofwork,ajointANSI-ISOcommitteestandardizedC++in1998(ISO/IEC14882:
1998).Forsomeyearsaftertheofficialreleaseofthestandardin1998,thecommitteeprocesseddefectreports,andpublishedacorrectedversionoftheC++standardin2003.
NooneownstheC++language;itisroyalty-free.Thestandarddocumentitselfis,however,notavailableforfree.
✧Futuredevelopment
C++continuestoevolvetomeetfuturerequirements.OnegroupinparticularworkstomakethemostofC++initscurrentformandadvisetheC++standardscommitteewhichfeaturesworkwellandwhichneedimproving:
Boost.org.CurrentworkindicatesthatC++willcapitalizeonitsmulti-paradigmnaturemoreandmore.TheworkatBoost.org,forexample,isgreatlyexpandingC++'sfunctionalandmetaprogrammingcapabilities.TheC++standarddoesnotcoverimplementationofnamedecoration,exceptionhandling,andotherimplementation-specificfeatures,makingobjectcodeproducedbydifferentcompilersincompatible;thereare,however,3rd-partystandardsforparticularmachinesorOSswhichattempttostandardisecompilersonthosepl