C ++ stdforward

C ++ stdforward
En av de essensielle C ++ -funksjonene, fremover () -funksjonen, vil bli dekket i dagens leksjon. For å sikre at alle aspekter av funksjonen er forstått tydelig, vil vi også bruke noen få eksempler. Men først, la oss raskt gjennomgå C ++ programmeringsspråket, grunnleggende funksjoner og logikken bak implementeringen av fremover () -funksjonen.

Grunnlaget for programmeringsspråket C ++ er basert på konseptene objektorientert programmering (OOP). Brukeren kan enkelt bygge og forstå programmets prinsipper siden C ++ har en riktig ramme. Siden funksjoner er kortfattede kodestykker, har prinsippet blitt tydeliggjort i C ++, slik at det kan brukes hvor som helst i et løpende program.

Introduksjon

På C ++ språk fungerer fremover () -funksjonen på samme måte som Move () -funksjonen, da begge brukes til å implementere MOVE Semantics. I fremover () -funksjonen aksepterer den en videresendingsverdi som inngangsverdi, og deretter avgjør den om en lValue eller en Rvalue som er referert til, er blitt levert til inngangsverdien. Og til gjengjeld om det vil gi riktig type referanser med T -malens argument eller ikke. Fremover () -funksjonen brukes til å gjøre perfekt videresending. Når en Rvalue -referanse blir tildelt en ref -variabel, blir Ref en navngitt enhet. Selv om Ref er en Rvalue -referanse, faller den innenfor kategorien LValue. Som et resultat er kopiering av semantikk i stedet for å flytte semantikk ansatt for referanser.

Syntaks

LValue () -funksjonen er en venstre verdi mal i fremover () -funksjonen, og det er det forhåndsdefinerte nøkkelordet på C ++ -språk som brukes til å starte en klassemal. Det blir deretter fulgt av alle malparametere som er inne i A og klasseerklæringen. Malparameteren “T” og nøkkelordet “klasse” er plassholdere for datatypene som brukes i erklæringen. Vi vil passere denne “T” -parameteren og kalle fremover () -funksjonen og passere typen og argumentet i den. Fjern_reference () malfunksjonen er en del av C ++ standardbiblioteket. Rvalue () -funksjonen er riktig verdemal i fremover () -funksjonen. En ref -variabel blir til et navngitt objekt når en Rvalue -referanse blir brukt på den. Selv om dommeren er en referanse til en rvalue, hører den hjemme i Lvalue -klassen.

Parametere:

arg: er et inngangsargument, og det brukes til å passere i fremover () -funksjonen.

Returverdi:

Til gjengjeld vil vi få Rvalue (høyre verdi) -referanse hvis vi ikke fikk LValue (venstre verdi) -referanse.

Eksempel 01:

La oss nå begynne å implementere vårt aller første eksempel på en av funksjonene som er Forwarding () -funksjonen på C ++ språk. For å begynne å skrive koden som vi ønsker å implementere på C ++ programmeringsspråk, trenger vi alltid først en kompilator der vi skriver koden og utfører koden. Så for det kan du installere hvilken som helst kompilator av C ++ -språk, eller du kan også bruke online -kompilatoren til å skrive og utføre koden hvis den er kompatibel med bibliotekene du skal bruke i programmet.

#inkludere
#inkludere
ved hjelp av navneområdet STD;

Etter å ha åpnet C ++ -kompilatoren, kan du nå begynne å skrive koden. I C ++ -programmer må vi alltid inkludere toppfiler i programmet slik at vi enkelt kan kalle funksjonen som vi skal bruke i programmet hvor som helst. Disse bibliotekene er de innebygde bibliotekene til programmeringsspråket C ++. Vi må bare skrive bare en kodeinje for å inkludere disse bibliotekene. Det første biblioteket vi alltid vil inkludere i C ++ -programmet er "Iosteam" -biblioteket som brukes til å få innspill fra brukeren, og vi kan også vise dataene gjennom "Iosteam" -biblioteket. For å ringe biblioteket, skriver vi først “#” -symbolet som vil fortelle kompilatoren at vi kommer til å få tilgang til biblioteket. Deretter vil vi skrive "Inkluder" nøkkelord som er det forhåndsdefinerte søkeordet som vil instruere kompilatoren om at vi inkluderer biblioteket. Og i symbolet vil vi skrive navnet på biblioteket vi importerer i programmet som er iostream ”.

Vi vil inkludere det andre innebygde biblioteket i programmet som vi bruker som er "Utility". "Utility" -biblioteket brukes til å definere noen maler som brukes ofte på tvers av standardmalbiblioteket (STL) i hele eksisterende program. Videre brukte vi "Bruke navneområde STD" -regelen for å forhindre objekter, metoder og parametere fra å dele det samme domenet over hele resten av programmet.

ugyldig overbelastet (int const & a)

cout<< "[lvalue]";

ugyldig overbelastet (int && a)

cout<< "[rvalue]";

mal
T fremover (t && a)

overbelastet (a);
overbelastet (frem (a));

Vi implementerte den globale funksjonen som er en av de objektorienterte enkeltmetodene der vi erklærte funksjonen utenfor Main () -funksjonen, og så kaller vi bare funksjonen i Main () -funksjonen og passerte de deklarerte variablene i den slik at vi Få ønsket utgang. Først vil vi skrive datatypen for funksjonen vi implementerer som er "ugyldig", noe som betyr at funksjonen ikke returnerer noen verdi.

Deretter vil vi skrive funksjonsnavnet som vi skal implementere “Overload () -funksjon” ANS, og vi vil passere parameteren i den. I overbelastningsfunksjonen har vi skrevet ut meldingen B ved hjelp av cout () -metoden. Den overbelastede () -funksjonen betyr at du kan gi flere funksjoner med samme navn i samme navneområde. Med overbelastede funksjoner kan du gi en metode flere semantikk basert på typene og mengdene av dens parametere. Som du ser har vi implementert en funksjon til med samme navn "Overbelastet" i samme program, og vi har passert parameteren i den.

Deretter har vi implementert den forhåndsdefinerte mal () -funksjonen i programmet slik at vi kan returnere resultatet av hvilken som helst datatype. Og vi kalte den overbelastede () -funksjonen i den. Som du har sett, er den overbelastede () -funksjonen “Int” -type, så det er derfor vi har implementert mal () -funksjonen, hvis vi legger inn verdien av en hvilken som helst type slik at kompilatoren ikke genererer noen feil i programmet.

Deretter vil vi starte Main () -funksjonen der vi vil erklære variabelen og vi får tilgang til de ovennevnte globale funksjonene her. Først har vi erklært de to variablene av INT -type og tildelt verdien til dem. Vi har erklært en annen variabel av typen "int" som er navngitt, og vi har lagret ADD -uttrykket i "Res". Deretter trykket vi "Res" -variabelen og passerte også "Res" -variabelen i fremover () -funksjonen slik at vi får LValue og i neste fremover () funksjonssamtale vil vi få både LValue og Rvalue Reference.

int main ()
int a = 30, b = 23;
int res = a+b;
cout<< res << " is a: ";
frem (res);
cout<cout<frem (A+B);
cout<retur 0;

Og på slutten av Main () -funksjonen vil vi returnere 0 til hoved () -funksjonen slik at den vil fortelle kompilatoren at vi ønsker å stoppe utførelsen av programmet og vise utdataene til programmet.

Konklusjon

I denne artikkelen har vi lært om fremover () -funksjonen som er den innebygde funksjonen til C ++ programmeringsspråket. Vi har også lært om hva overbelastning er og også om mal () -funksjonen til C ++ språket. Vi har implementert et eksempel på fremover () -funksjonen, og vi har brukt mal () -funksjonen i den.