C ++ er et høyt programmeringsspråk som brukes oftest til utvikling av spill og utvikling av operativsystemer. Det gir noen nyttige innebygde funksjoner som gjør programmeringen i C ++ mye enklere. Disse innebygde funksjonene lar deg bygge enhver form for enkel eller kompleks applikasjon med letthet. Brukeren kan utføre enorme funksjoner bare ved å inkludere den innebygde funksjonen i programmet. Denne artikkelen vil hjelpe deg med å lære deg CREF () innebygd funksjon av C++. Her vil vi definere funksjonen til CREF () og hjelpe deg med å forstå dens arbeid ved å demonstrere noen nyttige eksempler.
Hva er Cref () C ++ -funksjon?
CREF () er en innebygd funksjon av programmeringsspråket C ++. Det er en hjelperfunksjon som bruker malerens argumentfradrag for å generere et objekt av referanse_wrapper -typen mens du bestemmer resultatets malargument.
Med enkle ord brukes CREF () -funksjonen til å lage en referanseinnpakning. Referanseinnpakningen er en metode for å overføre referansen til et argument til en funksjon i stedet for den faktiske verdien. Når kontrollen er inne i funksjonen, brukes referansen til parameteren for å få tilgang til den faktiske verdien, og gjør ingen endringer i den opprinnelige verdien, men til referanseverdien. Dette er nyttig når brukeren ikke ønsker å endre den opprinnelige verdien, men trenger å bruke dem til ytterligere beregninger.
Syntaks av CREF () C ++ Funksjon:
Riktig syntaks for CREF () -funksjonen er som følger:
CREF () -funksjonen tar ett argument som innspill som må pakkes inn og returnerer referansepakningsobjektet for å holde "const -parameteren" -elementet. La oss nå utforske noen eksempler for å forstå at CREF () fungerer bedre. Ved å følge de nyttige eksemplene som er gitt, kan du lære å implementere CREF () -funksjonen i programmene dine og utvikle gode applikasjoner.
Eksempel 1:
Dette første eksemplet på CREF () -artikkelen definerer den grunnleggende bruken av CREF () -funksjonen i C ++ programmeringsspråket. Se følgende kode og forstå arbeidet med hver linje trinn for trinn.
Den første linjen inkluderer "iostream" -biblioteket i programmet slik at programmet kan bruke standard inngangsutgangsfunksjonaliteten til C ++ programmeringsspråket. Standard “iostream” -biblioteket lar deg bruke CIN, cout og andre funksjoner for å gjøre programmet ditt brukbart. Den "funksjonelle" overskriftsfilen er en del av standardbiblioteket levert av C ++ programmeringsspråket. Det tilbyr et forhåndsdefinert sett med klassemaler for å utføre flere funksjoner. Det inkluderer å lage logikken, utføre sammenligninger, forskjellige aritmetiske operasjoner osv. Programmet starter med main () -funksjonen. Den komplette koden er skrevet i Main () -funksjonen.
Den første kodelinjen i Main () -funksjonen er “Int Ref (9)”. Det kaller "Ref" -funksjonen og passerer "9" som en parameter til "Ref" -funksjonen. Etter det "auto ren = std :: cref (ref);" er definert. Denne linjen oppretter en referanseinnpakning av “REF”. “Ref ++” legger til 1 i den gitte parameteren som er 9. Så "Ref ++" blir 10. Den beregnede verdien sendes til cout -uttalelsen slik at den kan skrives ut. Retur 0 -uttalelsen sørger for at utdataene blir returnert. Hvis det er en viss feil, reiser returen 0 unntaket.
For å kompilere og utføre programmet, må du trykke på "Compile & Run" på oppgavelinjen. Eller du kan ganske enkelt trykke på "F11" -funksjonstasten på tastaturet. Sjekk den gitte utgangen i følgende:
Som du kan se, er utdataene 10 som er akkurat det vi beregnet manuelt.
Eksempel 2:
Dette eksemplet demonstrerer unntaket som kompilatoren reiser når brukeren ønsker å gjøre direkte endringer i den opprinnelige referanseverdien. Du kan finne koden for din forståelse i følgende illustrasjon.
Funksjonen bruker de samme bibliotekene som brukt i forrige eksempel. "Void f (const int & n)" -funksjonen er definert i starten av programmet. Det tar inngangen fra hovedfunksjonen og prøver å manipulere den. Cout -setningen skriver ut verdien når kontrollen er i funksjonen.
Uttalelsen “n ++” trinn N med 1. I hovedfunksjonen initialiseres “n” med 1. "Std :: funksjon bundet_f = std :: bind (f, std :: cref (n));" Uttalelse brukes til å binde funksjonen “f” med referanseavløpsverdien. De to cout -utsagnene brukes til å skrive ut verdiene når kontrollen er i hovedfunksjonen. Den første cout -setningen skriver ut verdien før du ringer barnets funksjon. Den andre cout -uttalelsen skriver ut verdien etter å ha ringt barnets funksjon.
Trykk “F11” i funksjonstastene eller kompileringsikonet på oppgavelinjen for å utføre programmet.
Her er utdataene produsert av programmet:
Når du utfører denne koden, vil du få en feil "økning av skrivebeskyttet referanse 'n'". Dette skjer fordi vi sendte referanseinnpakningen til "const int & n" i barnefunksjonen. "Const" lar deg ikke gjøre endringer i innpakningsparameteren. Derfor reiser det en feil.
Eksempel 3:
Det neste eksemplet er litt mer kompleks versjon av det første eksemplet. Her definerer vi de tre variablene og gir dem videre til barnets funksjon hver, annerledes. Det første argumentet blir bestått ganske enkelt uten å lage en referanseinnpakning. Imidlertid er de to andre inngangsnumrene gitt etter å ha opprettet referanseinnpakningen. Se følgende gitt kode:
Resten av programmet er det samme som det som ble gitt i det andre eksemplet. Den eneste forskjellen er at vi gir tre innganger og ikke gjør noen inngang konstant. Bindfunksjonen binder barnetfunksjonen med inngangsparametrene. Utgangen etter å ha utført programmet er som følger:
Merk at verdiene før du kaller barnets funksjon og når kontrollen er i barnefunksjonen er den samme. Når kontrollen går tilbake til hovedfunksjonen, økes imidlertid alle inngangsverdiene med 1. Dette skjer fordi økningen av innganger beregnes i barnefunksjonen og går tilbake til hovedfunksjonen.
Konklusjon
I denne guiden lærer vi om CREF () -funksjonen til programmeringsspråket C ++. CREF () -funksjonen brukes til å beregne referanseinnpakningen til den gitte inngangen. Ved hjelp av eksempler lærte vi hvordan vi implementerer CREF () -funksjonen i C ++ -programmet.