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

8 C ++ Ikke-nybegynderfunktioner - dummies

Indholdsfortegnelse:

Video: C Programming Tutorial | Learn C programming | C language 2025

Video: C Programming Tutorial | Learn C programming | C language 2025
Anonim

C ++-sproget indeholder så mange funktioner, at begynderprogrammører muligvis ikke kan forstå hver eneste. Heldigvis behøver du ikke beherske alle sprogets funktioner for at skrive store, virkelige programmer. Følgende er ti funktioner, som du måske vil se fremad på, bare hvis du ser dem i andres programmer.

C ++ goto-kommandoen

Denne kommando går helt tilbage til C, forfader til C ++. I princippet er det nemt at bruge denne kommando. Du kan placere goto label; hvor som helst du vil have. Når C ++ kommer over denne kommando, sendes kontrollen straks til etiketten, som vist i denne kodestykke:

for (;;) {hvis (betinget udtryk) {goto outahere;} // … uanset hvad du vil …} outahere: // … programmet fortsætter her …

goto introducerer mange måder at skrue op på. Under alle omstændigheder tog det ikke lang tid før programmører opdagede, at de to mest almindelige anvendelser af goto var at forlade sløjfer og at gå til den næste sag inden for en loop. C Standards Committee indførte pause og fortsatte og fjernede næsten fuldstændigt behovet for goto kommandoen.

C ++ ternær operatør

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

int n = (betinget)? udtryk1: expression2;

The? operatøren vurderer først betingelserne. Hvis betingelsen er sand, er værdien af ​​udtrykket lig med værdien af ​​udtryk1; ellers er det lig med værdien af ​​udtryk2.

Du kan f.eks. Implementere en maksimum () funktion som følger:

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

Den ternære operatør kan anvendes til enhver type numerisk, men kan ikke overbelastes. Den ternære operatør er virkelig et udtryk - ikke en kontrolopgave som en if.

Opregnede typer i C ++

Den simple idé er, at du kan definere konstanter og lade C + + tildele dem værdier som vist her:

enum Farver {BLACK, BLUE, GREEN, YELLOW, RED}; Farver myColor = BLACK;

Problemet med opregnede typer ligger i implementeringen: I stedet for at oprette en ægte type bruger C ++ heltal. I dette tilfælde er BLACK tildelt værdien 0, BLUE er tildelt 1, GREEN2 og så videre.

Standardbiblioteket for C ++ i 2011 "fixede" dette problem ved at oprette en opregnet klassetype som vist i følgende kodestykke:

enum klasse Farver {SVART, BLUE, GRØN, GUL, RØD}; Farver myColor = Farver:: BLACK;

I denne version er farver en ny type.Hver af konstanterne BLACK, BLUE og så videre er medlemmer af typen Colors. Du kan stadig kaste et objekt af klassefarver i et int, men en implicit støbning er ikke tilladt.

C ++ navneområder

Det er muligt at give forskellige enheder i to forskellige biblioteker samme navn. For eksempel tildeler karakteren () -funktionen i Studentbiblioteket sandsynligvis en karakter, mens karakteren () i Civil Engineering biblioteket kan sætte hældningen på siden af ​​en bakke. For at undgå dette problem tillader C + + programmereren at placere sin kode i et separat navneområde. Således er karakteren inden for Studentens navneområde forskellig fra karakteren inden for Civil Engineering.

Navnefeltet er ud over klassenavnet. Grade () medlemsfunktionen af ​​klassen BullDozer i CivilEngineering navneområdet har det udvidede navn CivilEngineering:: BullDozer:: grade ().

Alle bibliotekets objekter og funktioner er i navneområde std. Opgørelsen i begyndelsen af ​​programskabelonen ved hjælp af navneområde std; siger, at hvis du ikke ser det angivne objekt i standardnavnet, skal du se i std.

Pure virtuelle funktioner i C ++

Du behøver ikke at definere en funktion, der er erklæret virtuel. En sådan udefineret funktion er kendt som en ren virtuel medlemsfunktion . På det tidspunkt bliver tingene imidlertid komplicerede. For eksempel siges en klasse med en eller flere rene virtuelle funktioner abstrakt og kan ikke bruges til at oprette en genstand. Behandle dette emne, når du har det godt med virtuelle funktioner og sen binding.

C ++-strengklassen

De fleste sprog omfatter en strengklasse som en egen type til nemt at håndtere strenge af tegn. I teorien bør strengklassen gøre det samme for C ++. I praksis er det imidlertid ikke så enkelt. Da streng ikke er en egen type, er de fejlmeddelelser, som kompilatoren genererer, når noget går galt, mere som dem, der er forbundet med brugerdefinerede klasser. For en nybegynder kan disse meddelelser være meget vanskelige at fortolke.

streng er ikke engang en klasse. Det er en forekomst af en skabelonklasse. Fejlmeddelelserne kan være betagende.

Flere arv i C ++

En klasse kan faktisk udvide mere end en basisklasse. Det lyder simpelt, men kan blive ret kompliceret, når de to basisklasser indeholder medlemsfunktioner med samme navn. Endnu værre er, når begge basisklasser selv er underklasser af en fælles klasse.

Faktisk opstår der så mange problemer, at C ++ er det eneste C-lignende sprog, der understøtter flere arv. Java og C #, begge sprog stammer fra C ++, besluttede at miste support for flere arv.

C + + skabeloner og Standardskabelonbiblioteket

Skaberne af C ++ bemærkede, hvordan lignende funktioner som følgende er:

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

"Ville det ikke være køligt," siger man til en anden, "hvis du kunne erstatte typen med en pseudotype T, som du kunne definere på kompileringstidspunktet?"Før du ved det, bliver presto-skabeloner del af C ++:

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

Nu kan programmereren lav en max (int, int) ved at erstatte T med int og kompilere resultatet, lav et maksimum (dobbelt, dobbelt) ved at erstatte T med dobbelt osv. Standardskomiteen udgav endda et helt bibliotek af klasser, kendt som standardskabelonbiblioteket (STL for short), baseret på skabelonklasser.

For en nybegynder begynder emnet for skabelonklasser imidlertid at blive syntaktisk meget kompliceret. Derudover er de fejl, som kompilatoren genererer, når du får en skabelon-instantiering, forkert, forvirrende for en ekspert, så husk ikke en begynder. Dette er helt sikkert et emne, der skal vente, indtil du føler dig godt tilpas med det grundlæggende sprog.

8 C ++ Ikke-nybegynderfunktioner - dummies

Valg af editor

Hvordan man vælger vielsesringe

Hvordan man vælger vielsesringe

Selvom brudgommen handler solo til forlovelsesringen, sporer par normalt hinanden om deres vielsesringe. Nogle vælger matchende vielsesringe, men det behøver du ikke. Hvis du vil have et almindeligt guldband og din forlovede ønsker noget mere avanceret, er der ingen grund til, at du ikke begge kan have det, du vil have. Vælg en ...

Hvordan man holder styr på bryllupsgaver

Hvordan man holder styr på bryllupsgaver

Mister sporet af bryllupsgaver og deres givere kan være et mareridt . I det øjeblik du åbner en bryllupsgave, skriv ned hvad det er, hvem gav det til dig og datoen. Disse oplysninger kan gå på et indekskort med gæstens øvrige oplysninger i et regneark. Optag også, når du sender hver ...

Hvordan man vælger en forlovelsesring - dummier

Hvordan man vælger en forlovelsesring - dummier

Bragt til dig af Engagement og vielsesringe kommer i et stort udvalg af stilarter og materiale. Når man handler for forlovelses- og vielsesringe, går mange par sammen - eller i det mindste forudforhandler sammen, så hver person har en ide om den andens smag. Når du vælger ringe, skal du overveje din livsstil og prisklasse, og ...

Valg af editor

Forbedre dine Excel-rapporter ved de-Emphasizing Borders - dummies

Forbedre dine Excel-rapporter ved de-Emphasizing Borders - dummies

Borddesign er en af ​​de mest undervurderede bestræbelser i Excel-rapportering. Tro det eller ej, grænser kommer i vejen for hurtigt at læse dataene i en tabel. Fordi grænserne hjælper med at adskille data i pænt opdelte sektioner, kan det virke kontraintuitivt, men virkeligheden er, at bordets grænser er det første, du ...

Identificere problemet, som din finansielle model skal løse - dummies

Identificere problemet, som din finansielle model skal løse - dummies

En økonomisk model er normalt bygget for at besvare et spørgsmål eller at løse et problem. For eksempel spørgsmålet "Skal jeg købe dette nye aktiv? "Kan resultere i en model, der indeholder cash flow analyse, som sammenligner cash flow, hvis aktivet er købt versus, hvis det ikke købes. "Hvor meget skal ...

Sådan bruges VBA-regnearkfunktioner i Excel 2016 - dummies

Sådan bruges VBA-regnearkfunktioner i Excel 2016 - dummies

Selvom VBA tilbyder et anstændigt sortiment af bygget - i funktioner, kan du ikke altid finde præcis, hvad du har brug for. Heldigvis kan du også bruge de fleste af Excels regnearkfunktioner i dine VBA-procedurer. De eneste regnearkfunktioner, som du ikke kan bruge, er dem, der har en tilsvarende VBA-funktion. For eksempel kan du ikke bruge Excel's RAND ...

Valg af editor

Sådan går du ind i en Ham Radio Contact - dummies

Sådan går du ind i en Ham Radio Contact - dummies

Nogle gange kan du ikke vente på slutningen af ​​en kontakt til at ringe til en skinke radiostation. Afbrydelse af en anden kontakt kaldes at bryde ind (eller bryde). Den rigtige procedure er at vente på en pause i kontakten og hurtigt sige "Break" (eller send BK med Morse kode) efterfulgt af dit kaldesignal. Hvorfor gør du ...

Basics of High Frequency (HF) Ham Radios - Dummies

Basics of High Frequency (HF) Ham Radios - Dummies

Alle moderne skinke radioer har perfekt brugbar modtagelse og transmittere ydeevne. Forskellene involverer ydeevne på flere nøgleområder, såsom evnen til at modtage i nærvær af stærke signaler, signalfiltrering og filterstyringsfunktioner, dækning af et eller flere VHF / UHF-bånd, driftsfunktioner såsom subreceivers og antal indbyggede i antenne tunere. HF-radioer ...

Sådan vælger du en Ham Radio Antenne - Dummies

Sådan vælger du en Ham Radio Antenne - Dummies

Det er svært at sige, hvilket er vigtigt for en skinke radio operatør: radioen eller antennen. At klare mangler i en ved at forbedre den anden er vanskelig. En god antenne kan gøre en svag radio lyd bedre end den anden vej. Du skal give antennevalg mindst lige så meget ...