Hvordan bruke funksjonsreferanser i C ++

Hvordan bruke funksjonsreferanser i C ++
C ++ gir forskjellige metoder for å overføre argumenter til funksjoner, inkludert etter verdi, etter peker og med referanse. Å bestå argumenter som referanse lar funksjoner endre verdiene til de opprinnelige variablene, i stedet for bare å jobbe med kopier. Funksjonsreferansene gir en alternativ måte å passere argumenter ved referanse og kan forenkle kode ved å eliminere behovet for pekersyntaks.

Denne artikkelen vil utforske hvordan du bruker Funksjonsreferanser i C++, inkludert syntaks, et eksempel og fordeler i C++.

Hva er funksjonsreferanser i C++

Utviklere kan bruke funksjonsreferanser i C ++ for å skrive kode som er både mer effektiv og uttrykksfull. Funksjonsreferanser, Sammenlignet med konvensjonelle funksjonssamtaler, la programmerere sende hele funksjoner som parametere til andre funksjoner. Dette har en rekke fordeler, inkludert forbedret kodelesbarhet, utvidet funksjonsdesignfrihet og betydelige ytelsesgevinster.

Et sentralt trekk ved C ++ er muligheten til å sende funksjoner som parametere til andre funksjoner ved bruk av funksjonsreferanser. Når du jobber med store og komplekse applikasjoner, kan dette være enormt nyttig siden det fremmer større fleksibilitet og abstraksjon.

Hvordan bruke funksjonsreferanser i C++

Den grunnleggende syntaksen for å erklære en Funksjonsreferanse er som følgende:

Retur-type og funksjon-ref-navn (parametere)

I dette tilfellet, “Funksjonstype” refererer til den typen funksjon vi ønsker å sende som et argument, “Retur-type” refererer til den typen verdi Funksjonsreferanse Returnerer, og “Parametere” refererer til argumentene som er bestått.

Det er visse grunnleggende trinn i bruk funksjonsreferanser i c++. Lag en funksjon som godtar en funksjonsreferanse som et argument først. Enhver funksjon som samsvarer med referansetypen, må kunne håndtere denne funksjonen. Din funksjon må kunne håndtere enhver funksjon av den typen.

#inkludere
int add (int a, int b)
returner A + B;

int trekkraft (int a, int b)
returner A - B;

int main ()
int (*padd) (int, int) = add;
int (*psubtract) (int, int) = trekk;
std :: cout << "6 + 4 = " << pAdd(6, 4) << std::endl;
std :: cout << "8 - 2 = " << pSubtract(8, 2) << std::endl;
retur 0;

I koden over, aksepterer de to funksjonene og trekker begge til å akseptere to heltallparametere og returnere en heltallverdi. Deretter definerer vi to funksjonsreferansevariabler som kalles Padd og Psubtract, som er pekere på funksjoner som aksepterer to heltallsargumenter og gir ut en heltallverdi. Med adressene til henholdsvis ADD- og trekkfunksjonene initialiserer vi disse variablene. Deretter kan vi bruke funksjonsreferansevariablene PADD og Psubtract for å indirekte påkalle disse funksjonene.

Produksjon

Når du bruker Funksjonsreferanser i C++, Du bør følge visse beste praksis. Før noe annet er det viktig å bekrefte at eventuelle funksjoner du gir referanser til er statsløse. Dette indikerer at de ganske enkelt bruker inngangsparametrene som er blitt levert til dem og ikke endrer noen ekstern tilstand. Dette er fordi bruk funksjonsreferanser Å håndtere endringer i den eksterne tilstanden kan ha uventede utfall, da de ikke var ment å gjøre det.

Når du sender en funksjon som et argument til en annen funksjon, for eksempel når du bruker en sorteringsalgoritme som aksepterer en sammenligningsfunksjon som et argument, funksjonsreferanser kan være nyttig. Dessuten kan de brukes til å implementere tilbakeringingsfunksjoner, der en funksjon kalles når en spesifikk hendelse finner sted.

Fordeler med å bruke funksjonsreferanser

1: Effektiv kode

Når du bruker funksjonsreferanser, Du kan også dra nytte av en rekke C ++ -funksjoner som hjelper deg med å lage kode som er renere og mer effektiv. For eksempel kan du skrive utrolig kraftig og allsidig kode ved å kombinere funksjonsreferanser med andre C ++ -funksjoner som iteratorer, overbelastning av operatør og maler.

2: Resultatforbedringer

Evnen til å øke ytelsen kraftig er kanskje den største fordelen med funksjonsreferanser. EN Funksjonsreferanse er en peker til funksjonen når den sendes. Ved å gjøre det, kan du spare plass ved å ikke lage en kopi av funksjonen hver gang den påkalles. Dette kan være ekstremt viktig når du arbeider med tidkrevende, kompliserte eller store funksjoner.

3: Passfunksjoner som argumenter

Evnen til å tilby funksjoner som parametere til andre funksjoner er en av de viktigste fordelene ved å bruke funksjonsreferanser. Du kan begynne å levere funksjonsreferanser Som argumenter etter at funksjonen din er konfigurert. Bare gi referansen til riktig funksjon når du ringer funksjonen. Dette kan gjøres enten ved eksplisitt å navngi funksjonen eller ved å bruke en lambda -funksjon. Sistnevnte er spesielt nyttig når du trenger å passere en navngitt eller inline-erklært funksjon.

Konklusjon

For programmerere som prøver å bygge mer effektiv og uttrykksfull kode, funksjonsreferanser I C ++ er viktig. Du kan øke fleksibiliteten i funksjonsdesign, øke kodelesbarheten og oppnå betydelige ytelsesfordeler ved å bestå funksjonsreferanser som parametere. Du kan begynne å bruke funksjonsreferanser I din C ++ -kode og fortjener alle fordelene med litt praksis.