版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
IntroductionC++面向对象程序设计双语教程(第3版)Chapter101OverviewofProgrammingWhatIsProgramming?Muchofhumanbehaviorandthoughtischaracterizedbylogicalsequences.Sinceinfancy
youhavebeenlearninghowtobehaveandhowtoperformtasks.Andyouhavelearnedto
expectcertainbehaviorfromotherpeople.OverviewofProgrammingOnthebroadscale,mathematicscouldneverhavebeendevelopedwithoutlogically
sequencedstepsforsolvingproblemsandprovingtheorems.Massproductionwouldnever
haveworkedwithoutoperationstakingplaceinacertainorder.Ourwholecivilizationisbased
ontheorderofthingsandactions.Wecreateorder,bothconsciouslyandunconsciously,throughaprocessthatwecallprogramming.OverviewofProgrammingProgrammingProgrammingisplanninghowtosolveaproblem.Nomatterwhatmethodisusedthe
pencilandpaper,sliderule,addingamachine,orcomputer-problemsolvingrequiresprogramming.Ofcours,howoneprogramdependsonthedeviceoneusesinproblem-solving.OverviewofProgrammingProgramamingisplanningtheperformanceofataskoranevent.Computerprogrammingistheprocessofplanningasequenceofstepsforacomputertofollow.Computerprogramisasequenceofinstructionstobeperformedbyacomputer.OverviewofProgrammingTowriteasequenceofinstructionsforacomputertofollow,wemustgothrougha
three-phaseprocess:problem-solving,implementation,andmaintenance(seeFigure1-1).OverviewofProgrammingUnderstand(define)theproblemandwhatthesolution
mustdo.Analysisandspecification.Developalogicalsequenceofstepsthatsolvesthe
problem.Generalsolution(algorithm).Followthestepsexactlytoseeifthesolutiondoessolvetheproblem.Verify.OverviewofProgrammingAnalgorithmisaverbalorwrittendescriptionofalogicalsequenceofactions(orevents).Afterdevelopingageneralsolution,theprogrammerteststhealgorithm,walkingthrougheach
stepmentallyormanually.Ifthealgorithmdoesnotwork,theprogrammerrepeatsthe
problem-solvingprocess,analyzestheproblemagainandcomesupwithanotheralgorithm.OverviewofProgrammingWhentheprogrammerissatisfiedwiththealgorithm,he/shetranslatesitintoa
programminglanguage.Althoughaprogramminglanguageissimpleinform,itisnotalwayseasytouse.Programmingforcesyoutowriteverysimple,exactinstruction.Translatinganalgorithmintoaprogramminglanguageiscalledcodingthealgorithm.OverviewofProgrammingOnceaprogramhasbeenputintouse,itisoftennecessarytomodifyit.Modificationmay
involvefixinganerrorthatisdiscoveredduringtheuseoftheprogramorchangingthe
programinresponsetochangesintheuser'srequirements.Eachtimetheprogramismodified,itisnecessarytorepeattheproblem-solvingandimplementationphasesforthemodified
aspectsoftheprogram.OverviewofProgrammingThisphaseoftheprogrammingprocessisknownasmaintenanceandactuallyaccountsforthemajorityoftheeffortexpendedonmostprograma.Inaword,theproblem-solving,implementationandmaintenancephasesconstitutetheprogramslifecycle.OverviewofProgramming02ProgrammingMethodologiesProgrammingmethodologydealswiththeanalysis,designandimplementationof
programs.Therearemanyformsofprogrammingmethodology.Thepurposeofmaking
explicitawarenessofprogrammingmethodologyistoallowtheprogrammertobeawareof
theprocessesandprocedureswhichtheyusewhenconstructingprograms.ProgrammingMethodologiesDataAbstractionOneofthekeystosuccessfulprogrammingistheconceptofabstraction.Abstractionis
crucialtobuildingthecomplexsoftwaresystems,Agooddefinitionofabstractioncomesfrom
andcanbesummedupasconcentratingontheaspectsrelevanttotheproblemandignoring
thosethatarenotimportantatthemoment.ProgrammingMethodologiesThepsychologicalnotionofabstractionallowsonetoconcentrateonaproblemata
certainlevelofgeneralizationregardlessoftheirrelevantlow-leveldetails;useofabstraction
alsoallowsonetoworkinanenvironmentwithfamiliarconceptsandtermswithouttheneed
totransformittoanunfamiliarstructure.ProgrammingMethodologiesStructuredProgrammingDividingaproblemintosmallersub-problemsiscalledstructureddesign.Eachsub-problemisthenanalyzedandasolutionisobtainedtosolvethesub-problem.The
solutionstoallsub-problemsarecombinedtosolvetheoverallproblem,Thisprocessof
implementingastructureddesigniscalledstructuredprogramming.ProgrammingMethodologiesThestructured-design
approachisalsoknownasthetop-downdesign,stepwiserefinementandmodular
programming(seeFigure1-2).ProgrammingMethodologiesForusingstructuredprogramming,therearemanygoodreasons:codesareeasierto
understandanderrorsareeasiertofind.Anerrorwillalwaysbelocalizedtoasubroutineor
functionratherthanburiedsomewhereinamassofcode.Thescopeofvariablescanbe
controlledmoreeasily,Withthereuseofcodesaswellasbeingreusedwithinasingl
application,themodularprogrammingallowscodestobeusedinmultipleapplications.Thus.
programsareeasiertodesignthedesignerjustneedstothinkaboutthehigh-levelfunctions.ProgrammingMethodologiesCollaborativeprogrammingispossible--modularprogrammingenablesmorethanone
programmertoworkonasingleapplicationatthesametimewhilethecodescanbestored
acrossmultiplefiles.ProgrammingMethodologiesTheoutputisthesameasabove,butthistimethechanceofthescriptoperationbeing
alteredduetoatypingerrorisgreatlyreduced.Inaddition,ifthereisanerror,thetaskof
correctingitismademuchsimpler.Theprogrammercanalsousethefunctionalitythroughout
theirapplicationwithoutworryingabouthavingtorewritethecode,therebyimprovingthe
codeandthetimeefficiency.ProgrammingMethodologiesStructuredprogramnmingStructuredprogramnmingisaprogrammingparadigmthatenforcesalogicalstructureontheprogrambeingwrittentomakeitmoreelicientandeasiertounderstandandmodifyItisakindoftop-downdesign,stepwiserefinementandmodularprogramming.Itdividesaproblemintoseveralsub-problems,andeachsub-roblemisthenanalyzed,afterward.asolutionisobtainedtosolvethesub-problem.Thesolutionstoallsub-problemsarefnallycombinedtosolvetheoverallproblem.ProgrammingMethodologiesObject-OrientedProgramming(OOP)isawidelyusedprogrammingmethodology.InOOP,thefirststepistoidentifythecomponentscalledobjects,whichformthebasisofthesolution,andtodeterminehowtheseobjectsinteractwithoneanother,asshowninFigure1-3.Thenextstepistospecifyforeachobjecttherelevantdataandpossibleoperationstobeperformedonthedata.Object-OrientedProgrammingProgrammingMethodologiesFipure1-3Object-orientedprogramming.ProgrammingMethodologies03CharacteristicsofObject-OrientedProgrammingObject-orientedprogramming(OOP)isaprogrammingparadigmthatuses“objects”
datastructuresconsistingofdatafieldsandmethodstogetherwiththeirinteractions-to
designapplicationsandcomputerprograms.Programmingtechniquesmayincludefeaturessuchasdataabstraction,encapsulation,polymorphism,andinheritance.Itwasnotcommonly
usedinthemainstreamsoftwareapplicationdevelopmentuntiltheearly1990s.Manymodern
programminglanguagesnowsupportOOP.CharacteristicsofObject-OrientedProgrammingAclassAclassisauser-defineddatatypewhichcontainsvariables,propertiesandmethodsinit.Aclassdefinestheabstractcharacteristicsofathing(object),includingitscharacteristics(itsattributes,fieldsorproperties)andthething'sbehaviors(thethingsitcando,ormethods
operationsorfeatures).Onemightsaythataclassisablueprintorfactorythatdescribesthe
matureofsomething.CharacteristicsofObject-OrientedProgrammingMethodThemethodisasetofproceduralstatementsforachievingthedesiredresult.Itperforms
differentkindsofoperationsondifferentdatatypes.Inaprogramminglanguage,methods
sometimesreferredtoas“functions”)areverbs.Forexample,Lassie,beingaDogobject,has
theabilitytobark.CharacteristicsofObject-OrientedProgrammingMethodSobarkisoneofLassie'smethods.Shemayhaveothermethodsaswell
forexample,sitoreatorwalkorsave.Withintheprogram,usingamethodusuallyaffects
onlyoneparticularobject;alldogscanbark,butyouneedonlyoneparticulardogtodothe
barking.CharacteristicsofObject-OrientedProgrammingMessagepassingistheprocessbywhichanobjectsendsdatatoanotherobjectorasks
theotherobjecttoinvokeamethodwhichisknowntosomeprogramminglanguagesas
interfacing.Forexample,the22啊obiectcalledBreedermaytelltheLassieobjecttositbypassing
a“sit”messagewhichinvokes
Lassie's“sit”method.MessagePassingCharacteristicsofObject-OrientedProgrammingAbstractionisoneofthemostpowerfulandvitalfeaturesprovidedbyobject-oriented
programming.Theconceptofabstractionrelatestotheideaofhidingdatathatarenotneededforthepresentation.Themainideabehinddataabstractionistoclearlyseparatetheproperties
ofdatatypeandtheassociatedimplementationdetails.AbstractionCharacteristicsofObject-OrientedProgrammingEncapsulationEncapsulationconcealsthefunctionaldetailsofaclassfromobjectsthatsendmessages
toit.Forexample,theDogclasshasabarkmethod.Thecodeforthebarkmethoddefines
exactlyhowabarkhappens(e.g,byaninhalemethodandthenanexhalemethod,ata
particularpitchandvolume).Timmy,Lassie'sfiend,however,doesnotneedtoknowexactly
howshebarks.Encapsulationisachievedbyspecifyingwhichclassesmayusethemembersofanobject.CharacteristicsofObject-OrientedProgrammingInheritanceisaprocessinwhichaclassinheritsallthestateandbehaviorofanother
class.Thistypeofrelationshipiscalledchild-parentorisarelationship.“Subclasses”aremore
specializedversionsofaclass,whichinheritattributesandbehaviorsfromtheirparentclasses,andcanintroducetheirown.InheritanceCharacteristicsofObject-OrientedProgrammingForexample,theDogclassmighthavesub-classescalledCollie,Chihuahua,and
GoldenRetriever.Inthiscase,LassiewouldbeaninstanceoftheColliesubclass.Supposethe
DogclassdefinesamethodcalledbarkandapropertycalledfurColor.Eachofitssub-classes
(Collie,Chihuahua,andGoldenRetriever)willinheritthesemembers,meaningthatthe
programmeronlyneedstowritethecodeforthemonce.CharacteristicsofObject-OrientedProgramming04C++ProgrammingLanguage“Aslongastherewerenomachines,programmingwasnoproblematall;whenwehadafewweakcomputers,programmingbecameamildproblemandnowthatwehavegiganticcomputers,programminghasbecomeanequallygiganticproblem,Inthissensetheelectronicindustryhasnotsolvedasingleproblem,ithasonlycreatedthem-ithascreatedtheproblemofusingitsproduct”(E.WDijkstra,TuringAwardLecture,1972).C++ProgrammingLanguageHistoryofCandC++CevolvedfromtwopreviousprogramminglanguageBCPLandB.BCPLwasdevelopedin1967byMartinRichardsasalanguageforwritingoperatingsystemssoftwareandcompilers.KenThompsonmodeledmanyfeaturesinhislanguageBaftertheircounterpartsinBCPLandusedBtocreateearlyversionsoftheUNIXoperatingsystemattheBellLaboratoriesin1970onaDECPDP-7computer.C++ProgrammingLanguageHistoryofCandC++BothBCPLandBwere“typeless”anguage-everydataitemccupiedone“word”inmemorywhiletheburdenoftreatingadata
itemasawholenumberorarealnumber.forexample.fellontheshouldersofthe
programmer.C++ProgrammingLanguageThemostimportantthingtodowhenlearningC++istofocusonconceptsandnotgetlostinlanguage-technicaldetails.Thepurposeoflearningaprogramminglanguageistobecomeabetterprogrammer,thatis,tobecomemoreeffectiveatdesigningandimplementingnewsystemsandatmaintainingoldones.Forthis,theappreciationofprogramminganddesigntechniquesisfarmoreimportantthantheunderstandingofdetails,whichcomeswithtimeandpractice.LearningC++C++ProgrammingLanguageC++supportsavarietyofprogrammingstyles.Allarebasedonstrongstatictypechecking,andmostaimatachievingahighlevelofabstractionandadirectrepresentationoftheprogrammer'sideas.Eachstylecanachieveitsaimseffectivelywhilemaintainingrun-timeandspaceefficiency.C++ProgrammingLanguageAprogrammeroriginallyusingadifferentlanguage(sayC,Fortran,Smalltalk,Pascal,orModula-2)shouldrealizethattogainthebenefitsofC++,theymustspendtimelearningandinternalizingprogrammingstylesandtechniquessuitabletoC++.ThesamesituationappliestoprogrammersusedtoanearlierandlessexpressiveversionofC++.C++ProgrammingLanguageThoughtlesslyapplyingtechniqueseffectiveinonelanguagetoanothertypicallyleadstoawkward,poorlyperforming,andhard-to-maintaincode.Suchcodeisalsomostfrustratingtowritebecauseeverylineofcodeandeverycompilererrormessageremindstheprogrammerthatthelanguageuseddiffersfrom“theoldlanguage”.C++ProgrammingLanguageYoucanwriteinthestyleofFortran,C,Smalltalk,etcinanylanguage,butdoingsoisneitherpleasantnoreconomicalinalanguagewithadifferentphilosophy.EverylanguagecanbeafertilesourceofideasonhowtowriteC++programs.However,ideasmustbetransformedintosomethingthatfitswiththegeneralstructureandtypesystemofC++inordertobeeffectiveindifferentcontexts.C++ProgrammingLanguageC++supportsagradualapproachtolearning.Howyouapproachlearninganewprogramminglanguagedependsonwhatyoualreadyknowandwhatyouamtolearn.Thereisnosingleapproachthatsuitseveryone.MyassumptionisthatyouarelearingC++tobecomeabetterprogrammeranddesigner.Ergo,yourpurposeinlearningC++isnotsimplytolearnanewsyntaxfordoingthingsthewayyouusedto,buttolearnnewandbetterwaysofbuildingsystems.C++ProgrammingLanguageThishastobedonegraduallybecauseacquiringanysignificantnewskilltakestimeandrequirespractice.Considerhowlongitwouldtaketolearnanewnaturallanguagewellortolearntoplayanewmusicalinstrumentwell.Becomingabettersystemdesigneriseasierandfaster,butnotasmucheasierandfasterasmostpeoplewouldlikeittobe.C++ProgrammingLanguage谢谢观看C++面向对象程序设计双语教程(第3版)BasicFacilities—ShiftingfromCtoC++ProgramsC++面向对象程序设计双语教程(第3版)Chapter201C++ProgramStructureTheC++programconsistsofidentifiers,declarations,variables,constants,expressions,statements,andcomments.Acommonstructureforasimple,onefile,C++programincludesthefollowing:Comments.Theydescribeprogramfeature,author,andsoon.C++ProgramStructureIncludestatements.Theyspecifytheheaderfilesforlibraries.Usingnamespacestatement.Typically,thisisonly“usingnamespacestd”.Globaldeclarations(constants,types,variables,…).Avoidglobalvariablesifpossible.C++ProgramStructureFunctionprototypes(declarations).Mainfunctiondefinition.Functiondefinitions.C++ProgramStructureThefollowingexampleisusedtoillustrateaC++programstructure.Donotbetoo
concernedwiththedetailsintheprogram-justobserveitsover-alllookandstructure.C++ProgramStructureAllC++programscompriseoneormorefunctions,whicharealogicalgroupingofone
ormorestatements.Afunctionisidentifiedbyafunctionnameandafunctionbody.C++ProgramStructureAfunctionnameisidentifiedbyawordfollowedbyparentheses.InExample2-1,mainisafunctionname.Allprogramsmusthaveafunctioncalledmain.Theexeeutionofaprogrambeginswiththemainfunction.Thekeywordintalongwiththefunctionnamesignifiesthatthefunctionreturnsanintegervalue.C++ProgramStructureAfunctionbodyissurroundedbycurlybraces({}).Thebracesdelimitablockof
programstatements.Everyfunctionmusthaveapairofbraces.C++ProgramStructure02Input/Output
StreamsAprogramperformsthreebasicoperations:itgetsdata,itmanipulatesthedata,anditoutputtheresults.BecausewritingprogramsforI/Oisquitecomplex,C++offersextensivesupportforI/Ooperations.InC++,I/Oisasequenceofcharacters,calledastream,fromthe
sourcetothedestination.Input/OutputStreamsAstreamisasequenceofcharactersfromthesourcetothedestination.Inputstreamisasequenceofcharactersfromaninputdevice(e.g.keyboard)tothecomputer.Outputstreamisasequenceofcharactersfromthecomputertoanoutputdevice(e.g.monitor).Input/OutputStreamsThestandardlibraryoffersistreamforinput.Theistreamdealswiththecharacterstring
representationsofbuilt-intypesandcaneasilybeextendedtocopewithuser-definedtypes.Withinputstreams,theextractionoperator(>>)isusedtoremovevaluesfromthestream.Thismakessense:whentheuserpressesakeyonthekeyboard,thekeycodeisplacedinan
inputstream.Yourprogramthenextractsthevaluefromthestreamsoitcanbeused.InputStreamInput/OutputStreamsThe>>operator(“getfrom”)isusedasaninputoperator;ein(readsee-in)isoneofthestandardInput/Outputstreams,i.e.iostream.Thetypeoftheright-handoperandof>>determineswhatinputisacceptedandwhatisthetargetoftheinputoperation.Input/OutputStreamsOutputStreamWithoutputstreams,theinsertionoperator(<<)isusedtoputvaluesinthestream.Thisalsomakessense:youinsertyourvaluesintothestream,andthedataconsumer(e.g.monitor)usesthem.Input/OutputStreamsOutputStreamThe<<operator(“putin”)areusedasanoutputoperation.cout(readsee-out)isalsooneofthestandardInput/Outputstreams,i.e.iostream.Bydefault,valuesoutputtocoutareconvertedtoasequenceofcharacters.Input/OutputStreams03ConstantsC++offerstheconceptofauser-definedconstant,aconst,toexpressthenotionthatthevalueofavariablecannotbechangeddirectly.Thisisusefulinseveralcontexts.Forexample,manyvariablesdonotactuallyhavetheirvalueschangedafterinitialization;symbolic
constantsleadtomoremaintainablecodethandoliteralsembeddeddirectlyincode;pointers
areoftenreadthroughbutneverwrittenthrough,andmostfunctionparametersarereadbut
notwrittento.ConstantsTheconstkeywordspecifiesthatavariable'svalueisconstantandtellsthecompilertopreventtheprogrammerfrommodifyingit.Itcanbeaddedtothedeclarationofavariabletodeclarethevariableasaconstant.ConstantsGiventhis,thecompilerknowsthevaluesofclandc2sothattheycanbeusedinconstantexpressions.Sincethevaluesofc3andc4arenotknownatcompiletime,storagemustbeallocatedfore3andc4.Becausetheaddressofc2istaken(andpresumablyusedsomewhere),storagemustbeallocatedforc2.ConstantsPointersandConstantsWhenusingapointer,twovariablesareinvolved:thepointeritselfandthevariablepointedto."Prefixing³thedeclarationofapointerwithconstmakesthevariable,butnotthepointer,aconstant.Todeclareapointeritself,ratherthantheobjectpointedto,tobeaconstant,weusethedeclaratoryoperator*constinsteadofplain*.Constants04FunctionsLetuslookbacktheprograminExample1-3ofChapter1.Whenyouworkonaprogram,itcanbedividedintoafewblockscalledfunetionbody.Sometimes,itisnotpracticaltoputtheentireprogramintoonefunction,e.g.themainfunction,asyouseeinExample1-3.Youmustlearntobreaktheproblemintomanageablepieces.FunctionsFunctionDeclarationsAfunctiondeclarationestablishesthenameofthefunction,thetypeofdatareturnedby
esofitsparameters.FunctionsAfunctiondeclarationconsistsofareturntype,aname,andaparameterlist.Inaddition,afunctiondeclarationmayoptionallyspecifythefunction'slinkage.InC++,thedeclarationcanalsospecifyanexceptionspecification,aconst-qualification,oravolatile-qualification.FunctionsAdeclarationinformsthecompileroftheformatandexistenceofafunctionpriortoitsuse.Afunctioncanbedeclaredseveraltimesinaprogram,providedthatallthedeclarationsarecompatible.Animplicitdeclarationofafunctionisnotallowed:everyfunctionmustbeexplicitlydeclaredbeforeitcanbecalled.FunctionsFunctionDeclarationsAfunctionargument(i.e.actualparameter)isanexpressionoravariablethatyouusewithinthe
parenthesesofafunctioncall.Afunetionparameter(i.e.formalparameter)isanobjeetorreferencedeclared
withintheparenthesisofafunctiondeclarationordefinition.FunctionsFunctionprototypesarerequiredforcompatibilitybetweenCandC++.Thenon-prototypeformofafunctionthathasanemptyparameterlistmeansthatthefunctiontakesanunknownnumberofparametersinC,whereas,inC++,itmeansthatittakesno
parameters.FunctionsFunctionDefinitionsAfunctiondefinitionconsistsofitsname,itsreturntype,itsparameterlistandbody.Thefunctionheaderspecifiesthefunction'sreturntype,nameandparameters.Thefunetionsignatureconsistsofthefunctionnameandtheparameterlist.FunctionsEveryfunctioninaprogrammustbedefinedsomewhere(onceonly)beforeitisinvoked.Afunctiondefinitionisafunctiondeclarationinwhichthebodyofthefunctionispresented.FunctionDefinitionsFunctionsDefaultArgumentsAgeneralfunctionoftenneedsmoreparametersthatarenecessarytohandlesimplecases.Inparticular,functionsthatconstructobjectsoftenprovideseveraloptionsforflexibility.FunctionsAdefaultargumentmeansthatthedefaultvaluesarepassedtotheparameterswhena
functionisinvokedwithoutthearguments.Ofcourse,theusercanchangethedefaultvalueif
heorsheprovidesavalueforthedefaultparameter.FunctionsInlineFunctionsAninlinefunctionisoneforwhichthecompilercopiesthecodefromthefunctiondefinitiondirectlyintothecodeofthecallingfunctionratherthancreatingaseparatesetofinstruetionsinmemory.Insteadoftransferringcontroltoandfromthefunctioncodesegment,amodifiedcopyofthefunctionbodymaysubstitutethefunctiondirectlyforthefunctioncall.Inthisway,theperformaneeoverheadofafunetioncallisavoided.FunctionsFunctionOverloadingMostoften,itisagoodideatogivedifferentfunctions
differentnames,butwhensomefunctionsconceptuallyperformthesametaskonobjectsofdifferenttypes,itcanbemofeconvenienttogivethemthesamename.Usingthesamenameforoperationsondifferenttypesiscalledoverloading.Functions05ReferencesReferenceDefinitionAreferenceisasimplereferencedatatype.Areferenceisanaliasoralternativenameforanobject.ThismeansthatC++allowsyoutocreateasecondnamefortheobjectthatyoucanusetoreadormodifytheoriginaldatastoredintheobject.ReferencesParametersprovideacommunicationlinkbetweenthecallingfunction(suchasmain)andthecalledfunction.Theyenablefunctionstomanipulatedifferentdataeachtimetheyarecalled.Ingeneral,therearetwotypesofformalparameters:valueparametersandreferenceparameters.ReferenceVariablesasParametersReferencesReferencesasReturningValuesReturningvaluesfromafunctiontoitscallerbyvalue,address,orreferenceworksalmost
the
same way
aspassingparameterstoafunction.Theyhavethesameadvantages
and
disadvantages.Theprimarydifferencebetweenthetwoissimplytheoppositedirectionsofdataflow.However,thereisonemoreaddedbitofcomplexity-becauselocalvariablesinafunctiongooutofscopewhenafunctionreturns,weneedtoconsidertheeffectofthisoneachretumtype.ReferencesReturningbyreferenceistypicallyusedtoreturnargumentspassedbyreferencetothe
functionbacktothecallerusedontheright-handsideofanassignmentoperator.Ifthefunctioncallcanappearontheleft-handsideofanassignmentoperator,whatwillhappen?ReferenceasLeft-HandValuesReferences06NamespacesAnamespaceisamechanismforexpressinglogicalgrouping,i.e.ifdeclarationslogically
belongtogetheraccordingtospecificcriteria,thenacommon namespace
expressthisfact.NamespacesInthisexample,variablesa,b,fanddaredeclaredwithintwonamespacescalledmySpaceandyourSpacerespectively.Althoughthesevariableshavethesamename,declaringthemwithinthetwonamespaceswillnotcausearedefinitionerror;thenamespaceisabletoavoidnamecollisions(ofvariables,types,elassesorfunctions).NamespacesHerethefunctionbodiesaredefinedoutsidethenamespacesmySpaeeandyourSpace,theaimof
thisistoseparatetheinterface(ie.funetiondeelaration)fromtheimplementation(i.e.functiondefinition).NamespacesAsaresultofseparatingtheimplementationoftheinterface,eachfunctionnowhasexactlyonedeclarationandonedefinition.Userswillseeonlytheinterfacecontainingdeclarations.Theimplementationinthiscase,thefunctionbodieswillbeplaces“somewhereelse³whereauserdoesnotneedtosee.Namespaces谢谢观看C++面向对象程序设计双语教程(第3版)FoundationofClassesandObjects—DataAbstractionandDefinitionofClassesC++面向对象程序设计双语教程(第3版)Chapter301IntroductiontoStructuresAstructuretypeisauser-definedtype.Structuresareaggregatedatatypebuiltbyusingelementsofothertypes,thatis,structuresareawayofstoringmanydifferentvaluesinvariablesofpotentiallydifferenttypesunderthesamename.Thismakesitamoremodularprogram,whichiseasiertomodifybecauseitsdesignmakesthingsmorecompact.Forexample,astructurecanbeusedtostoreinformationaboutstudentsinadatabase.IntroductiontoStructuresWhenyoudefineastructure,youmustrememberthatthemaindifferencebetweenstructuresandarraysisthatthestruetureisacollectionofdifferentdatatypesandthearrayisacollectionofthesamedatatype.IntroductiontoStructuresDefiningaStructureinC++Theprecedingstructuredefinitiondoesnotreserveanyspaceinmemory,rather,thedefinitioncreatesanewdatatypethatisusedtodeclareavariable.Structure'svariableis
declaredlikevariablesofothertypes.IntroductiontoStructuresTheprogramdefinesasingleDatestructurecalledt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高校就业指导中心运行及其效果研究-以北京师范大学为样本的深度剖析
- 高校大学生学业指导:问题剖析与创新策略探究-基于多案例的深度分析
- 高校助学贷款三大模式的运行困境与突破路径研究
- 高栏港经济区节能减排模型构建与优化:基于可持续发展的深度剖析
- 高新技术企业人员流动管理风险及应对策略:基于多案例的深入剖析
- 高一历史人民版必修一试题:6.1民主政治的摇篮古代希腊
- 养殖场养殖设备安全试题库及答案
- 养老护理员试题库(附参考答案)
- 初级护师《基础知识》真题测试题库(含答案)
- 加气站储气瓶组安全试题库及答案
- 齿轮减速器装配图课件
- 点线面体(导学案)数学人教版2024七年级上册
- 中小学学校教学常规管理细则(2025修订版)
- 企业日常行政事务外包协议
- 银行培训竞聘班长
- DB35∕T 1036-2023 10kV及以下电力用户业扩工程技术规范
- 部编版语文五年级下册全册复习知识汇-总
- 安全培训矩阵管理制度
- 股票市场的隐秘科学
- 常见业务场景网络安全建设VISIO图合集(27个类型)v2023
- 建筑变形测量规范
评论
0/150
提交评论