版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025九年级物理上册第十四章欧姆定律综合素质评价新版苏科版
- 2026年常德科技职业技术学院单招职业倾向性测试题库新版
- 2026年湖南化工职业技术学院单招职业倾向性测试模拟测试卷及答案1套
- 市级机关文印服务中心2025年编外用工招聘备考题库附答案详解
- 水利工程质量管理指南
- 2026年山东信息职业技术学院单招职业适应性测试题库附答案
- 2026年成都纺织高等专科学校单招职业倾向性考试题库及答案1套
- 平凉市市直学校公开招聘2026届协议培养师范生23人备考题库(第二批)及1套完整答案详解
- 平果市2025年度乡镇卫生院公开招聘乡村医生备考题库含答案详解
- 平顶山市2026年度市直机关公开遴选公务员备考题库及参考答案详解一套
- GB/Z 21437.4-2025道路车辆电气/电子部件对传导和耦合引起的电骚扰试验方法第4部分:沿高压屏蔽电源线的电瞬态传导发射和抗扰性
- 安徽省六校联考2025-2026学年高三上学期素质检测语文试题及参考答案
- 气性坏疽隔离护理
- 四川省眉山市东坡区苏祠共同体2024-2025学年七年级上学期期末英语试题(含答案)
- 2025年大学大一(法学)法理学基础试题及答案
- 2026年高考物理二轮复习策略讲座
- 2025杭州市市级机关事业单位编外招聘10人(公共基础知识)测试题附答案
- 通往2026:中国消费零售市场十大关键趋势-尼尔森iq-202512
- 6.3 哪个团队收益大 教学设计 2025-2026学年数学北师大版八年级上册
- 影院映前广告方案
- IE七大工具培训
评论
0/150
提交评论