En funksjon pekeren er i hovedsak bare en peker til en funksjon . I språk som C + + , finnes hver funksjon og variabel i et dataprogram som et minne adresse , og en variabel kan inneholde verdien av denne adressen. Den variabelen kan sendes til en tilbakeringing , som deretter kaller funksjonen at de variable peker til. Den kan også benyttes i et arrangement leder, eller for sen binding av et medlem funksjon . På grunn av deres komplisert syntaks, er funksjonspekere ofte unngås ved programmerere , men kan brukes til å enkelt utføre mange kraftige oppgaver. Du trenger
C + + kompilatoren
Vis flere instruksjoner
en
Skriv en C + + program . Dette er programmet der du vil bruke en funksjon peker.
2
Definer en funksjon peker . Du kan gjøre dette en av flere måter . Erklære en funksjon, for eksempel : en
void doSomething ( int data) ;
og senere erklære en peker til den. Eller du kan erklære en funksjon som en peker : en
void ( * doSomething ) ( int ) ;
slutt kan du erklære en typedef , og deretter opprette en variabel av denne typen
typedef void ( * voidTakingInt ) ( int ) ;
Du kan nå bruke " voidTakingInt " som en type : en
void doSomething ( int data) ; voidTakingInt fun_ptr = & doSomething ;
3
Erklærer noe som bruker funksjonen pekeren . Dette vil ofte være noe som bruker funksjonen pekeren som en tilbakeringing funksjon, slik at når en bestemt hendelse inntreffer , går funksjonen din funksjon . Et eksempel er en fil -lasting funksjon som tar en tilbakeringing funksjon som indikerer fremgang.
4
Ring funksjonen fra pekeren til det. Dette vil bli gjort i funksjonen du skrev som aksepterer en funksjon peker som en parameter : en
void doSomething ( int data) { }
void callAnotherFunction (void ( * otherFunction ) ( int ) ) {
( * otherFunction ) ( 3 ) ;
}
int main ( int argc , char * argv [ ] ) {
callAnotherFunction ( & doSomething ), tilbake 0;
}