Baixe o app para aproveitar ainda mais
Prévia do material em texto
AprendendoC++ Módulo1 C++Fundamentos AprendendoC++ Sehouverumalínguaquedefineaessênciadaprogramaçãohoje,éC++. Éomaisproeminentesidiomaparaodesenvolvimentodealto desempenhodesoftware.Asuasintaxetornou-seopadrãopara profissionaislinguagensdeprogramação,esuafilosofiadedesign repercuteemtodacomputação. C++tambéméalínguaapartirdoqualambosJavaeC#sãoderivados. Indicadosimplesmente,paraserumprogramadorprofissionalimplica competênciaemC++.Éaportadeentradaparatodosdeprogramação modernas.OobjetivodestemóduloéaintroduzirC++,incluindosua história,asuafilosofiadedesign,eváriasdassuascaracterísticasmais índicehabilidade crítica1. 1:UmaBreveHistóriadeC++....................................................................................................................................2 habilidadecrítica1.2:ComoC++refere-seaJavaeC#.........................................................................................5 habilidadecrítica1.3:Programaçãoorientadaaobjetos........................................................................................7 habilidadecrítica1.4:umprimeiroprogramasimples..........................................................................................10 habilidadecrítica1.5:Umsegundolugarprogramasimples................................................................................15 habilidadecrítica1.6:Usandoumoperador..........................................................................................................17 habilidadecrítica1.7:Leituradeentradadoteclado.............................................................................................19 Projeto1-1aconversãodePésparametros........................................................................................................24 habilidadecrítica1.8:DoisDeclaraçõesdeControlede........................................................................................26 habilidadecrítica1.9:Usandoblocosdecódigo...................................................................................................30 Projeto1-2AgerarumatabelademetrosdeparaMedidordeconversões.........................................................33 habilidadecrítica1.10:ApresentandoFunções................................................................................................35 habilidadecrítica1.11:OC++Palavras-chave.....................................................................................................38 habilidadecrítica1.12:Identificadores...................................................................................................................39 AprendendoC++ importantes.Delonge,acoisamaisdifícilsobreaprendizagemdeuma linguagemdeprogramaçãoéofatodequenenhumelementoexistede formaisolada.Emvezdisso,oscomponentesdalínguatrabalharjuntos. Esteinter-relaçãotornadifícilparadiscutirumaspectodeC++sem envolvendooutros.Paraajudarasuperaresseproblema,estemódulo forneceumabrevevisãogeraldeváriosC++características,incluindoa formageraldeumprogramaC++,algumasbásicasdeclaraçõesde controle,eoperadores.Elenãoentraremmuitosdetalhes,massim concentra-seaconceitosgeraiscomunsaqualquerprogramaC++. Habilidadecrítica1.1:UmabrevehistóriadeC++ AhistóriadeC++começacomC.Arazãoparaesteéfácildeentender: C++éconstruídosobreabasedeC.Assim,C++éumsuperconjuntodeC. C++expandidoereforçadaalinguagem Cparaapoiarprogramação orientadaaobjetos(queédescritomaisadiantenestemódulo).C++ tambémadicionouváriasoutrasmelhoriasparaalinguagemC,incluindo umlongoconjuntoderotinasdebiblioteca.Noentanto,grandepartedo espíritoesabordeC++estádiretamenteHerdadodeC.Portanto,para entendercompletamenteeapreciarC++,vocêprecisaentendero"comoe por"portrásC. C:oiníciodaidademodernadeprogramação AinvençãodeCdefineoiníciodaidademodernadeprogramação.oseu impactonãodevesersubestimadoporqueelemudoufundamentalmente ocaminhodeprogramaçãofoiseaproximouepensouem.Asuafilosofia dedesignesintaxeterinfluenciadotodososprincipaislínguadesdeentão. Cfoium dosprincipais,forçasrevolucionáriasem computação.Cfoi inventadoeimplementadopelaprimeiravezporDennisRitchieem um DECPDP-11usandoosistemaoperacionalUNIX.Céoresultadodeum processodedesenvolvimentoquecomeçoucomummaisvelhoslíngua chamado BCPL.BCPLfoidesenvolvido porMartin Richards.BCPL AprendendoC++ influenciadoumidiomachamadoB,quefoiinventadoporKenThompson equelevouparaodesenvolvimentodeCnadécadade1970.Antesda invençãodeC,linguagensdecomputadorforamgeralmenteconcebidos quercomoacadêmicoexercíciosouporburocráticacomissões.Cera diferente.Elefoiprojetado,implementado,edesenvolvidopelareal,de trabalhoprogramadores,refletindoaformacomoelesseaproximouo trabalhodeprogramação.suascaracterísticasforam afinados,testado, pensouem,erepensadoporaspessoasquerealmenteusouoidioma. Comoresultado,Catraiumuitosproponenteserapidamentetornou-sea linguagem deescolhadeprogramadoresem todoomundo.Ccresceu paraforadaprogramaçãoestruturadarevoluçãodadécadade1960. Antesdeprogramaçãoestruturada,grandesprogramasforamdifícilpara escreverporquealógicadoprogramatendiam adegenerarem queé conhecidocomo"códigoespaguete,"um emaranhadomassadesaltos, chamadas,eretornaqueédifícilaseguir.estruturadoidiomasdirigida esteproblemaadicionandobemdefinidosdeclaraçõesdecontrole,sub- rotinas comvariáveislocais,eoutrasmelhorias.Usandoestruturadolínguas,tornou-sepossível escrevermoderadamentegrandesprogramas.Emboranãoforamoutrosestruturadolínguas nomomento,taiscomoPascal,Cfoioprimeiroacombinarcomsucessopoder,elegância,e expressividade.Oseuconcisa,masfácildeusarsintaxejuntamentecomasuafilosofiaqueo programador(nãooidioma)foiresponsávelrapidamenteganhoumuitosconverte.Elepode serumpoucodifícilentenderapartirdehojeperspectiva,masCfoiumalufadadearfresco queprogramadorestinhatãoesperada.Comoresultado,Ctornou-seomaisutilizado programaçãoestruturadalinguagemdadécadade1980. AprendendoC++ AnecessidadedeC++ Dadaadiscussãoanterior,vocêtalvezpossaestarperguntandoporC++ foiinventado.UmavezqueCfoiumbemsucedidocomputadorlinguagem deprogramação,porqueestavaláanecessidadedeoutracoisa?A respostaécomplexidade.Aolongodahistóriadaprogramação,a complexidadecrescentedeprogramaslevouanecessidadedemaneiras melhoresparagerenciarquecomplexidade.C++éumarespostaaque precisam.Paramelhorcompreenderacorrelaçãoentreoaumento programadecomplexidadeelinguagemdecomputadordesenvolvimento, considere o seguinte. Abordagens para programação mudaram dramaticamentedesdeainvençãodocomputador.Porexemplo,quando computadoresforam inventados,deprogramaçãofoifeitousandoo computadordopainelfrontalparaalternarnobinárioinstruçõesde máquina.Enquantoprogramasforam apenasalgumascentenasde instruçõespormuitotempo,estaabordagemtrabalhou.Comoprogramas cresceu,linguagem assemblyfoiinventadoparaqueprogramadores poderialidarcom maior,cadavezmaisprogramascomplexosusando representaçõessimbólicasdamáquinainstruções.Comoprogramas continuouacrescer,dealtonívellínguasforamdesenvolvidosparadar programadoresmaisferramentascomqueparalidarcomacomplexidade. Aprimeiraamplamenteutilizadolinguagem decomputadorfoi,éclaro, FORTRAN.EnquantoFORTRAN foium muitoimpressionanteprimeiro passo,édificilmenteumalinguagemqueincentivaclaro,fácildeentender programas.décadade1960deuàluzprogramaçãoestruturada,queéo métododeprogramaçãoencorajadosporlínguastaiscomoC.Com estruturado línguas que era,pela primeira vez,possívelescrever moderadamenteprogramascomplexosfacilmente.Noentanto,mesmo comprogramaçãoestruturadamétodos,umavezqueumprojetoatinge umcertotamanho,suacomplexidadeexcedeoqueumprogramadorpode gerenciar.por1970satrasados,muitosprojetosforam pertoouneste momento.Em respostaparaesteproblema,umanovamaneirade programacomeçouasurgir:programaçãoorientadaaobjetos(OOP). UsandoOOP,um programadorpoderiatrabalharcommaiores,mais AprendendoC++ programascomplexos.OproblemafoiqueCfeznãosuportaprogramação orientadaaobjetos.OdesejodeumobjetoorientadoparaversãodoCem últimaanáliselevouàcriaçãodeC++.Emúltimaanálise,emboraCéum dosmaisgostavaeamplamenteutilizadoprofissionallinguagensde programaçãodomundo,chegaummomentoemqueasuacapacidade paralidarcom complexidadeforexcedido.Umavezqueum programa atinge um certo tamanho,torna-se tão complexo que é difícil compreendercomoumtotalidade.AfinalidadedeC++épermitirqueesta barreirapossaserquebradoeparaajudaroprogramadorcompreendere gerenciarmaior,emaisprogramascomplexos. NaceoC++ C++foiinventadoporBjarneStroustrupem1979,emBellLaboratoriesem MurrayHill,NewJersey.Eleinicialmentechamadoanovalíngua"Ccom Classes."Noentanto,em1983onomefoialteradoparaC++.Stroustrup construídoC++sobreabasedeC,incluindotodososrecursosdeCdo, atributos,ebenefícios.EletambémrespeitadoCdafilosofiasubjacente queo programador,não a língua,éresponsável.Nesteponto,é fundamentalparaentenderqueStroustrupnãocriouum inteiramente novalinguagem deprogramação.Em vezdisso,elereforçadaum já grande sucesso idioma.A maioria dos recursos que Stroustrup adicionadoaoCforamconcebidosparaapoiarprogramaçãoorientadaa objetos.Em essência,C++éoobjetoorientadoparaversãodoC.por edifícioemcimaabasedeC,Stroustrupfornecidaumbomcaminhode migraçãoparaOOP.Emvezdeterqueaprenderumainteiramentenova língua,um programadorCnecessáriosparaaprenderapenasalguns novosrecursosantesdecolherosbenefíciosdoorientadaaobjetos metodologia.AocriarC++,Stroustrupsabiaqueeraimportantemantero espíritooriginaldeC,incluindoasuaeficiência,flexibilidade,efilosofia, enquantoaomesmotempoadicionandosuporteparaprogramação orientadaaobjetos.Felizmente,oseuobjetivoerarealizado.C++ainda AprendendoC++ forneceoprogramadorcomaliberdadeecontroledeC,juntamentecomo poderdeobjetos.EmboraC++foiinicialmenteprojetadoparaajudarna gestãodemuitograndeprogramas,édemodoalgumlimitadoaesteuso. Na verdade,o objeto orientado para atributos de C++ pode ser efetivamenteaplicadoapraticamentequalquertarefadeprogramação. NãoéincomumverC++utilizadoparaprojetostaiscomoeditores,bancos dedados,pessoalsistemasdearquivos,deredeutilitários,eprogramas de comunicação.Porque C++ ações C da eficiência,muito alto desempenhosistemasdesoftwareéconstruídousandoC++.Alémdisso, C++ é frequentemente a linguagem de escolha para o Windows programação. AevoluçãodoC++ UmavezqueC++foiinventado,elepassouportrêsgrandesrevisões,com cadarevisãoadicionandoae,quealteraasidioma.Aprimeirarevisãofoi em1985eosegundoem1990.OterceiroocorreuduranteoC++processo denormalização.háváriosanos,otrabalhocomeçouemumpadrãopara C++.Emdireçãooefeito,umajointANSI(AmericanNationalStandards Institute)e ISO(Normas Internacionais Organização)padronização comissãofoiformada.Oprimeiroprojectodapropostadepadrãofoi criadaem 25dejaneirode1994.Aesteprojectode,oANSI/ISOC++ comissão(dequeeueraummembro)manteveascaracterísticasdefinido pelaprimeiravezporStroustrupeacrescentoualgunsnovos.Mas,em geral,esteprojectoinicialrefletiuoestadodeC++nomomento.Logoapós aconclusãodoprimeiroprojectodasC++padrão,umeventoocorreuque causouopadrãoparaserexpandido:acriaçãodoStandardTemplate Library(STL)porAlexanderStepanov.ASTLéumconjuntodegenéricos rotinasquevocêpodeusarparamanipulardados.Eleéaomesmotempo poderoso Seelegante.mastambém émuitoamplas.Nasequênciaoprimeiro projectode,acomissãovotouparaincluiroSTLnaespecificaçãopara AprendendoC++ C++.AadiçãodeoSTLexpandiuoâmbitodeC++muitoalém asua definiçãooriginal.Enquantoimportante,ainclusãodoSTL,entreoutras coisas,diminuiuapadronizaçãodeC++.Éjustodizerqueapadronização deC++levoumuitomaistempodoquequalquerumtinhaesperado.No processo,muitosnovosrecursosforam adicionadosparaalíngua,e muitaspequenasmudançasforam feitas.Naverdade,aversãodoC++ definidopeloANSI/ISOC++comissãoémuitomaioremaiscomplexado queStroustrupdoprojetooriginal.Oprojectofinalfoiaprovadaparafora decomité,em14denovembrode1997,eumANSI/ISOpadrãoparaC++ tornou-seumarealidadeem1998.EstaéaespecificaçãoparaC++queé geralmentereferidocomoStandardC++.Omaterialnestelivrodescreve StandardC++.EstaéaversãodoC++suportadoportodososmainstream C++compiladores,incluindodaMicrosoftVisualC++.Assim,ocódigoe informaçõesnestelivrosãototalmenteportátil. Habilidadecrítica1.2:comoC++refere-seajavae C# Além de C++,há dois outros importante,moderno linguagens de programação:JavaeC#.JavafoidesenvolvidopelaSunMicrosystems,e C#foicriadoporMicrosoft.porquenãoháporvezes,confusãosobre comoestasduaslínguasdizemrespeitoaC++,umabrevediscussãode suarelaçãoéafim.C++éopaiparaambososJavaeC#.Emboraambos osJavaeC#adicionado,removido,emodificadováriascaracterísticas,no totalasintaxeparaestestrêslínguaséquaseidênticos.Alémdisso,o modelodeobjetousadoporC++ésemelhanteaoaquelesusadospor JavaeC#.Finalmente,oglobal"lookandfeel"delínguasseguintesé muitosemelhante.IstosignificaqueumavezquevocêsabeC++,você podefacilmenteaprenderJavaouC#.oopostotambém éverdade.Se vocêsabeJavaouC#,aprendizagemC++éfácil.Estaéumarazãoque JavaeC#compartilharC++desintaxeemodelodeobjeto,quefacilitoua suaadopçãorápidaporlegiõesdeexperientesC++programadores.A principaldiferençaentreC++,Java,eC#éotipodeambientede computaçãoparaosquaiscadaéprojetado.C++foicriadaparaa AprendendoC++ produçãodealtodesempenhoprogramasparaumtipoespecíficodeCPU esistemaoperacional.Porexemplo,sevocêquiserescreverumprograma queéexecutadoemumprocessadorIntelPentiumnoâmbitodosistema operacionalWindows,emseguida,C++éamelhorlinguagemdeusar. queestádiretamenteexecutadopelaCPU.Assim,éamarradoparauma determinadaCPUesistemaoperacional.SevocêdesejaexecutarumC++ programaemumsistemadiferente,vocêprecisarecompilar-loemcódigo demáquinaespecificamentedirecionadosparaesseambiente.Paracriar um programaC++quecorraem umavariedadedeambientes,vários diferentesexecutávelversõesdoprogramasãonecessários.JavaeC# alcançarportabilidadecompilandoum programaem um pseudocódigo, linguagemintermediária.NocasodeJava,estálinguagemintermediáriaé chamado de bytecode.Para C#,é chamado Microsoftlinguagem intermediária(MSIL).Emambososcasos,estepseudocódigoéexecutado porumtempodeexecuçãosistema.ParaJava,estetempodeexecução dosistemaéchamadodeJavaVirtualMachine(JVM).ParaC#,éa CommonLanguageRuntime(CLR).Portanto,umprogramaJavapodeser Q:ComoJavaeC#criarmulti-plataforma,programasportáveis, eporquenãopossofazeromesmocomC++? A:JavaeC#podecriarmulti-plataforma,programasportáveise C++nãopossoporcausadotipodecódigoobjetoproduzido pelocompilador.NocasodeC++,asaídadocompiladoré códigodemáquina Pergunteaoexpert AprendendoC++ executadoemqualquerambienteparaosquaisumaJVMestádisponível, eumC#programapodeserexecutadoemqualquerambienteemqueo CLRéimplementado.UmavezqueoJavaeC#tempodeexecução sistemasdeficarentreumprogramaeaCPU,JavaeC#programasde incorreremumasobrecargaquenãoestápresentenaexecuçãodeum C++programa.ÉporissoqueC++programasgeralmentecorrermais rápidodoqueoequivalenteprogramasdeescritaemJavaouC#.Javae C#foramdesenvolvidosemrespostaàprogramaçãoúnicanecessidades doambienteem linhadaInternet.(C# também foiprojetadopara simplificaracriaçãodecomponentesdesoftware.)AInternetestáligadoa muitostiposdiferentesdeCPUsesistemasoperacionais.Assim,a capacidadedeproduzirmulti-plataforma,programasportáveistornou-se umapreocupaçãodominante.Aprimeiralínguaparaendereçoesta necessidadefoiJava.UsandoJava,épossívelparaescreverumprograma queéexecutadoem umagrandevariedadedeambientes.Assim,um programaJavapodemoverlivrementenaInternet.Noentanto,opreço quevocêpagarporportabilidadeéaeficiência,eprogramasJava executarmaislentamentedoquefazerC++programas.Omesmoé verdadeiroparaC#.Em últimaanálise,sevocêquiserparacriaraltodesempenhodesoftware,useC++.Sevocêprecisaparacriaraltamente portátilsoftware,useJavaouC#.Umpontofinal:Lembre-sequeC++, Java,e C# são projetados para resolverdiferentes conjuntos de problemas.Nãoéum problemadosquaislínguaémelhorem edesi mesmo.Em vezdisso,éumaquestãodequelínguaécertoparao trabalhonamão. 1.PeloquelínguaéC++derivados? 2.OquefoioprincipalfatorquelevouacriaçãodeC++? 3.C++éopaideJavaeC#.VerdadeiroouFalse? Progressodeverificação AprendendoC++ Habilidadecrítica1.3:Programaçãoorientadaa objetos CentralparaC++éprogramaçãoorientadaaobjetos(OOP).apenascomo explicado,OOPfoioimpulsoparaacriaçãodeC++.Porcausadisso,éútil paraentenderOOPéprincípiosbásicosantesdeescreveratémesmoum simplesC++programa.programaçãoorientadaaobjetoslevouos melhoresidéiasdeprogramaçãoestruturadaecombinados-loscom váriosnovosconceitos.Oresultadofoiumdiferentesemelhormaneirade organizarum programa.Nosentidomaisgeral,um programapodeser organizadoemumadasduasmaneiras:emtornodeseucódigo(oque estáacontecendo)ouemtornodeseusdados(queestásendoafetados). Usandoapenasestruturadotécnicasdeprogramação,programassão normalmenteorganizadosemtornodecódigo.Estaabordagempodeser pensadocomo"códigoagindoemdados."orientadaaobjetosprogramas detrabalhoocontrário.Elessãoorganizadosemtornodedados,como princípiofundamentalsendo"dadoscontrolaroacessoaocódigo."Em umalinguagemorientadaaobjetos,vocêdefinirosdadoseorotinasque sãoautorizadosaagiremqueosdados.Assim,umtipodedadosdefine exatamenteoquetipodeoperaçõespodeseraplicadoparaqueosdados. Respostas 1.C++éderivadodeC. 2.OaumentodoprogramadecomplexidadefoioprincipalfatorquelevouacriaçãodeC++. 3.verdade. AprendendoC++ Parasuportarosprincípiosdaprogramaçãoorientadaaobjetos,todosos OOPlínguas,incluindoC++,temtrêstraçosemcomum:encapsulamento, polimorfismo,eherança.Vamosexaminarcada. Encapsulamento Encapsulamentoéummecanismodeprogramaçãoqueunecódigoeos dadosquemanipula,equemantémtantoasalvodeinterferênciaexterna eusoindevido.Emumalinguagemorientadaaobjetos,códigoedados podemserunidosemtalformaqueumindependentecaixapretaécriado. Dentrodacaixasãotodososdadosnecessáriosecódigo.Quandocódigo eosdadossãoligadosentresinesteforma,umobjetoécriado.Emoutras palavras,umobjetoéodispositivoquesuportaencapsulamento. Q:Eujáouvifalarotermométodoaplicadoaumsub-rotina.éummétodoo mesmoqueumafunção? A:Emgeral,arespostaésim.OtermométodofoipopularizadoporJava.O queumC++programadorchamadasdeumafunção,umprogramadorJava chamadasummétodo.C#programadorestambémusarotermométodo. Porqueésetornandotãoamplamenteutilizado,àsvezesotermométodo tambéméusadoquandoreferindo-seaumC++ Pergunteaoexpert AprendendoC++ Noprazodeumobjeto,códigooudadosouambospodemserprivatepara esseobjetooupublic.códigoprivateoudadoséconhecidoporser acessívelporapenasoutrapartedoobjeto.Ouseja,códigoprivadoou dadoscannotseracessadoporumpedaçodeoprogramaqueexistefora doobjeto.Quandocódigooudadosépublic,outraspartesdoseu programapodeacessá-lomesmoqueédefinidonoprazodeumobjeto. Normalmente,opúblicopartesdeum objetosãousadosparafornecer umacontroladainterfaceparaoprivateelementosdoobjeto.C++de unidadebásicadeencapsulamentoéaclasse.umaclassedefineaforma deumobjeto.Eleespecificatantoosdadoseocódigoqueiráoperarem queosdados.C++usaumaespecificaçãodeclasseparaconstruir objetos.Objetossãoinstânciasdeumaclass.Assim,umaclassé essencialmenteumconjuntodeplanosdequeespecificacomoconstruir umobjeto.Ocódigoedadosqueconstituemumaclasssãochamadosde membrosdaclass.Especificamente,variáveisdemembro,também chamadodevariáveisdeinstância,sãoosdadosdefinidopelaclass. funçõesdemembrosãoocódigoqueoperaemqueosdados.funçãoé C++doprazoparaumasub-rotina.PolimorfismoPolimorfismo(apartir degrego,quesignifica"muitasformas")éaqualidadequepermiteque umainterfaceparaacessarumaclassgeraldeações.Um exemplo simplesdepolimorfismoéencontradonovolantedeum automóvel.O volante(ainterface)éomesmonãoimportaoquetipoderealdispositivo deconduçãoéusado.Ouseja,ovolantefuncionaomesmoseoseucarro temdirecçãomanual,direcçãoassistida,ouemracke-pinhãodedireção. Assim,transformandoovolanteàesquerdafazcomqueocarroparairà esquerdanãoimportaoquetipodedirecçãoéusado.obenefícioda interfaceuniformeé,éclaro,queumavezquevocêsabecomopara Função AprendendoC++ operarovolante,vocêpodedirigirqualquertipodecarro.Omesmo princípio também pode se aplicam a programação.Porexemplo, considereumapilha(queéumprimeiro-in,última-outlista).Vocêpode terumprogramaquerequertrêsdiferentestiposdepilhas.Umapilhaé usadoparavaloresinteiros,umparavaloresdepontoflutuante,eumpara caracteres.Nestecaso,oalgoritmoqueimplementacadapilhaéomesmo, mesmoqueosdadossendoarmazenadoédiferente.deformanão linguagem orientadaaobjetos,vocêserianecessárioparacriartrês diferentesconjuntosdepilharotinas,comcadaconjuntousandonomes diferentes.Noentanto,porcausadepolimorfismo,emC++vocêpodecriar um geralconjuntodepilharotinasquefuncionaparatodosostrês situações.Destaforma,umavezquevocêsabecomousarumapilha, vocêpodeusartodoseles.Em termosmaisgerais,oconceitode polimorfismoémuitasvezesexpressaporafrase"umainterface, múltiplosmétodos."Istosignificaqueépossívelprojetarumainterface genéricaaum grupodeactividadesrelacionadascom.Polimorfismo ajudaareduzircomplexidade,permitindoqueamesmainterfacepara especificarumaclassegeraldeação.Éocompiladordotrabalhopara selecionaraaçãoespecífica(ouseja,método),umavezqueaplica-sea cadasituação.Você,oprogramador,tem anecessidadedefazerisso seleçãomanualmente.Vocêprecisaapenaslembre-seeutilizara interfacegeral. Herança Herançaéoprocessopeloqualumobjetopodeadquiriraspropriedades deoutroobjeto.Esteéimportanteporqueelesuportaoconceitode classificaçãohierárquica.Sevocêpensarnisso,amaioriaconhecimentoé feita gerenciávelporhierárquica(ou seja,de cima para baixo) classificações.Porexemplo,um vermelhomaçãdeliciosafazparteda classificaçãomaçã,queporsuavezfazpartedofrutoclass,queésoba maior class comida. Ou seja,a comida class possui certas qualidades(comestíveis,nutritivos,eassim pordiante)quetambém, logicamente,seaplicam asuasubclasse,frutas.Paraalém destas AprendendoC++ qualidades,ofrutoclasstemcaracterísticasespecíficas(suculento,doce, eassimpordiante)quedistingui-lodeoutrosalimentos.Amaçãclasse defineasqualidadesespecíficasparaumamaçã(cresceemárvores,não tropical,eassimpordiante).,vermelho,maçãdeliciosaque,porsuavez, herdartodasasqualidadesdetodososanterioresclassesedefiniria apenasasqualidadesqueotornamúnico.semousodehierarquias,cada objetoteriaquedefinirexplicitamentetodasassuascaracterísticas. Usandoherança,um objetosóprecisadedefinirasqualidadesqueo tornamúnicanoprazodesuaclass.Elepodeherdarseusatributosgerais apartirdoseupai.Assim,éomecanismodeherançaquetornapossível paraumobjetoparaserumainstânciaespecíficadeummaiscasogeral 1.NomeosprincípiosdeOOP. 2.OqueéaunidadebásicadeencapsulamentoemC++? 3.Oqueéodeusogeralprazoparaumasub-rotinaemC++? Progresodeverificação Respostas 1.encapsulamento,polimorfismo,eherançasãoosprincípiosdaOOP. 2.AclasséaunidadebásicadeencapsulamentoemC++. 3.funçãoéodeusogeralprazoparaumasub-rotinaemC++. AprendendoC++ Habilidadecrítica1.4:Oprimeiroprograma simples Agoraéhoradecomeçaraprogramação.Vamoscomeçarporcompilare funcionandoacurtaamostradoprogramaC++mostradoaqui: Q:Vocêqueestadodeprogramaçãoorientadaaobjetos(OOP)éumaformaeficazparagerenciargrandes programas.Noentanto,parecequeOOPpodeadicionarsubstancialdespesasgeraispararelativamente pequenos.noqueserefereaC++,éestaverdade? A:nº.Umponto-chaveparaentendersobreC++équeelepermitequevocêescreverorientadaaobjetos programas,masnãoexigemquevocêfazê-lo.EsteéumadasdiferençasimportantesentreC++eJava/C#, queempregamumrigorosoobjeto-modeloemquecadaprogramaé,apelomenosumapequenamedida,orientadaaobjetos.C++dá-lheaopção.Alémdisso,paraomaiorparte,oobjeto-recursosorientadosdeC++ sãotransparentesemtempodeexecução,tãopouco(sehouver)sobrecargaéincorridos. Pergunteaoexpert
Compartilhar