Hjem Personlig finansiering 8 C ++ Ikke-nybegynnerfunksjoner - dummies

8 C ++ Ikke-nybegynnerfunksjoner - dummies

Innholdsfortegnelse:

Video: Kurs C++ odc. 8: Łańcuchy. Typ string. Tablice char. Tabela ASCII 2024

Video: Kurs C++ odc. 8: Łańcuchy. Typ string. Tablice char. Tabela ASCII 2024
Anonim

C ++-språket inneholder så mange funksjoner som begynnelsen programmerere ikke muligens kan forstå hver enkelt. Heldigvis trenger du ikke å mestre alle funksjonene i språket for å kunne skrive store, virkelige programmer. Følgende er ti funksjoner som du kanskje vil se fremover på, bare hvis du ser dem i andres programmer.

C ++ goto-kommandoen

Denne kommandoen går helt tilbake til C, stammen til C ++. I prinsippet er det enkelt å bruke denne kommandoen. Du kan plassere goto label; hvor enn du vil. Når C ++ kommer over denne kommandoen, sendes kontrollen umiddelbart til etiketten, som vist i denne kodestykket:

for (;;) {hvis (betinget uttrykk) {goto outahere;} // … uansett hva du vil …} outahere: // … programmet fortsetter her …

I praksis, goto introduserer mange måter å skru opp. I hvert fall tok det ikke lang tid før programmører la merke til at de to vanligste bruken av goto var å gå ut av looper og å gå til neste sak i en loop. C-standarden kom inn for å bryte og fortsette og fjernet nesten behovet for goto-kommandoen.

C ++ ternær operatør

Den ternære operatøren er en operatør som er unik for C og C ++. Det fungerer som følger:

int n = (betinget)? uttrykk1: uttrykk2;

The? Operatøren vurderer først betinget. Hvis tilstanden er sant, er verdien av uttrykket lik verdien av uttrykket1; ellers er det lik verdien av uttrykket2.

For eksempel kan du implementere en maksimum () -funksjon som følger:

int max (int n1, int n2) {retur (n1> n2)? n1: n2;}

Den ternære operatøren kan brukes på alle typer numeriske men kan ikke overbelastes. Den ternære operatøren er virkelig et uttrykk - ikke en kontrollerklæring som en hvis.

Opptatte typer i C ++

Den enkle ideen er at du kan definere konstanter og la C ++ tildele dem verdier, som vist her:

enum Farger {SVART, BLÅ, GRØN, GUL, RØD}; Farger myColor = SVART;

Problemet med oppnådde typer ligger i implementeringen: I stedet for å opprette en sann type bruker C ++ heltall. I dette tilfellet er BLACK tildelt verdien 0, BLUE er tildelt 1, GREEN2, og så videre.

Standardbiblioteket for C ++ for 2011 "fikser" dette problemet ved å opprette en opptatt klassetype som vist i følgende kode:

enum klasse Farger {SVART, BLÅ, GRØN, GUL, RØD}; Farger myColor = Farger:: SVART;

I denne versjonen er farger en ny type.Hver av konstantene, BLACK, BLUE, og så videre, er medlemmer av typen Colors. Du kan fortsatt kaste et objekt av klassefarger inn i en int, men en implisitt gjengivelse er ikke tillatt.

C ++ navneområder

Det er mulig å gi forskjellige enheter i to forskjellige biblioteker samme navn. For eksempel gir karakteren () -funksjonen i Studentbiblioteket sannsynligvis karakter, mens karakteren () i Civil Engineering-biblioteket kan sette bakken på siden av en bakke. For å unngå dette problemet, lar C ++ programmøren legge sin kode i et eget navneområde. Dermed er karakteren i Studentens navneområde forskjellig fra karakteren innen Civil Engineering.

Navneområdet er utover klassenavnet. Klassen () medlemsfunksjonen til klassen BullDozer i Civil Engineer namespace har det utvidede navnet Civil Engineer:: BullDozer:: grade ().

Alle bibliotekets objekter og funksjoner er i navneområdet std. Oppgaven i begynnelsen av programmalen bruker navneområde std; sier at hvis du ikke ser det angitte objektet i standard navnerom, så gå og se i std.

Pure virtuelle funksjoner i C ++

Du trenger ikke å definere en funksjon som er deklarert virtuell. En slik udefinert funksjon er kjent som en ren virtuell medlemsfunksjon . På det tidspunktet blir det imidlertid komplisert. For eksempel sies en klasse med en eller flere rene virtuelle funksjoner abstrakt og kan ikke brukes til å skape et objekt. Takle dette emnet etter at du har det godt med virtuelle funksjoner og sen binding.

C ++-strengeklassen

De fleste språk inkluderer en strengklasse som en egen type for lett å håndtere tekststrenger. I teorien bør strengklassen gjøre det samme for C ++. I praksis er det imidlertid ikke så enkelt. Fordi streng ikke er en egen type, er feilmeldingene som kompilatoren genererer når noe går galt, mer som de som er knyttet til brukerdefinerte klasser. For en nybegynner kan disse meldingene være svært vanskelig å tolke.

streng er ikke engang en klasse. Det er en forekomst av en maleklasse. Feilmeldingene kan være fantastisk.

Flere arv i C ++

En klasse kan faktisk utvide mer enn en grunnklasse. Dette høres enkelt, men kan bli ganske komplisert når de to grunnklassene inneholder medlemsfunksjoner med samme navn. Enda verre er når begge grunnklassene selv er underklasser av noen vanlig klasse.

Faktisk oppstår så mange problemer at C ++ er det eneste C-lignende språket som støtter flere arv. Java og C #, begge språkene avledet fra C ++, bestemte seg for å slippe støtte for flere arv.

C + + -maler og Standardmallabiblioteket

Skaperne av C ++ la merke til hvordan lignende funksjoner som følgende er:

int max (int n1, int n2) {if (n1> n2) {return n1;} return n2;} double max (double n1, double n2) {if (n1> n2) {return n1;} retur n2;} char max (char n1, char n2) {hvis (n1> n2) {return n1;} returnere n2;}

"Ville det ikke være kult," sier en til en annen, "hvis du kunne erstatte typen med en pseudotype T som du kunne definere på kompileringstidspunktet?"Før du vet det, blir presto-maler en del av C ++:

mal T max (T t1, T t2) {if (t1> t2) {return t1;} return t2;}

Nå kan programmereren lage en maks (int, int) ved å erstatte T med int og kompilere resultatet, opprett en maks (dobbelt, dobbel) ved å erstatte T med dobbel og så videre. Standardskomiteen ga til og med ut et helt bibliotek av klasser, kjent som Standard Template Library (STL for kort), basert på malklasser.

For en nybegynner begynner emnet for malklasser å bli syntactically svært komplisert. I tillegg er feilene som kompilatoren genererer når du får en mal-instansering feil, forvirrende for en ekspert, ikke bry deg om en nybegynner. Dette er definitivt et emne som må vente til du føler deg komfortabel med grunnleggende språket.

8 C ++ Ikke-nybegynnerfunksjoner - dummies

Redaktørens valg

Vanlige medikamenteffekter for legeassistenteksamen - dummies

Vanlige medikamenteffekter for legeassistenteksamen - dummies

Bli kjent med vanlige bivirkninger for legeassistenteksamen (PANCE). Den gjennomsnittlige personen over 60 år tar omtrent ni reseptbelagte medisiner og ser minst fire forskjellige helsepersonell. Potensialet for noen til å oppleve bivirkningene av disse medisinene er enorm, og det er potensialet for signifikante legemiddelinteraksjoner. ...

Epidemiologiske studier dekket av legeassistenteksamen - dummies

Epidemiologiske studier dekket av legeassistenteksamen - dummies

For legeassistenteksamen (PANCE) du bør være oppmerksom på forskjellene mellom typer epidemiologiske studier. Det første trinnet er å gjenkjenne om studiet er en retrospektiv studie eller en prospektiv studie: Retrospektiv: En retrospektiv studie betyr at du ser på fortiden for å finne ut hva som skjedde. For eksempel, en ...

Forhold som påvirker pleura dekket på legeassistenteksamen - dummies

Forhold som påvirker pleura dekket på legeassistenteksamen - dummies

Du kan se Spørsmål om legeassistenteksamen om forhold som påvirker pleura. Du må vurdere evaluering og behandling av pleural effusions, pneumothorax og pleurisy. Væske rundt lungene: Pleural effusjon Normalt er pleura et tomt rom; en pleural effusjon er ganske enkelt væske som opptar den plassen. Pleural ...

Redaktørens valg

Slik setter du automatiske varsler på LinkedIn - dummies

Slik setter du automatiske varsler på LinkedIn - dummies

Sikkert, du kan gjøre alt fotverket ved å gå til LinkedIn hjemmesiden og ser deg rundt for å se hvilke meldinger eller endringer som har skjedd. Den sanne kraften til å holde kontakten, har imidlertid LinkedIn, kontakter deg automatisk med den informasjonen du trenger for å holde deg informert. Klikk på Administrer-koblingen ved siden av Personvern og innstillinger ...

Tips for å administrere dine LinkedIn Post-interaksjoner - dummies

Tips for å administrere dine LinkedIn Post-interaksjoner - dummies

Når du klikker Publiser på LinkedIn, kan du tenke at jobb er ferdig, men det er bare begynt. Etter hvert som flere og flere leser innlegget ditt, kan de samhandle med innlegget og med deg som forfatter. Her er noen ting å huske på etter at du har publisert et innlegg: Overvåk statistikken. Når du ...

Forstå LinkedIn Pulse - dummies

Forstå LinkedIn Pulse - dummies

Har du sjekket ut LinkedIn Pulse ennå? Tenk deg om du leser en avis som bare viste deg artikler som har betydning for deg. (For det hele, for mange av dere, tenk på de dagene du kanskje har lest en avis.) Tilpassede nyheter er mulige, og på LinkedIn kalles det LinkedIn Pulse. Alt du trenger å gjøre for å ...

Redaktørens valg

Hva Dragon NaturallySpeaking kan gjøre for deg - dummies

Hva Dragon NaturallySpeaking kan gjøre for deg - dummies

Noe om å diktere til en datamaskin vekker alle slags urealistiske forventninger hos mennesker. Hvis du forventer at du skal servere deg frokost på sengen, har du lykke til. Denne artikkelen ble ikke skrevet ved å si "Computer, skriv en bok om NaturallySpeaking. "Forfatteren måtte diktere det ord for ord, akkurat som hun ville hatt ...

Når Start ikke starter i NaturallySpeaking - dummies

Når Start ikke starter i NaturallySpeaking - dummies

Når du gir kommandoen "Start" til Dragon NaturallySpeaking, du sier "Start America Online" eller "Start Microsoft Works" eller "Start Quicken", og programmet skal åpnes. Men hva hvis det ikke gjør det? Hva er greia? Start-kommandoen starter et program som er installert på maskinen din, og har enten et snarveisikon på ...

Når NaturallySpeaking Menykommandoer ikke fungerer - dummies

Når NaturallySpeaking Menykommandoer ikke fungerer - dummies

Når du gir en kommando til NaturallySpeaking, for eksempel "Klikk" og ingenting skjer, det sannsynlige problemet er at menyen Bruk menyer som er kompatible med skjermlesere, ikke er merket av. For å sjekke det: Velg Verktøy → Valg i vinduet NaturallySpeaking. Det er ikke noe poeng å fortelle deg hvordan du får tilgang til dette med stemmen, for det er akkurat ...