En funktion pointer er i det væsentlige, bare en pointer til en funktion. I sprog som C + +, hver funktion og variabel i et edb -program eksisterer som en memory -adresse, og en variabel kan indeholde værdien af denne adresse. Denne variabel kan videregives til et tilbagekald , som derefter kan kalde den funktion, de variable peger på . Det kan også anvendes i en event manager , eller for sen binding af et medlem funktion . På grund af deres komplicerede syntaks er funktionspointere ofte undgås ved programmører , men kan anvendes til nemt at udføre mange stærke opgaver. Ting du skal
C + + compiler
Vis Flere Instruktioner
1
Skriv en C + + -program. Det er det program, du vil bruge en funktion pointer.
2
Definer en funktion pointer. Du kan gøre dette én af flere måder. Erklær en funktion, såsom : Hej
void doSomething ( int data) ,
og senere erklære en pointer til det. Eller du kan erklære en funktion som en pegepind : Hej
void ( * doSomething ) ( int ),
Endelig kan du erklære en typedef , derefter oprette en variabel af denne type < br . >
typedef void ( * voidTakingInt ) ( int ),
Du kan nu bruge " voidTakingInt " som en type : Hej
void doSomething ( int data) , voidTakingInt fun_ptr = & doSomething ; < br >
3
Erklær noget, der bruger funktionen pointer. Dette vil ofte være noget, der anvender funktion pointer som en callback funktion , således at når en bestemt begivenhed indtræffer , funktionen kører din funktion . Et eksempel er en fil -loading -funktion , der tager en callback funktion til at angive fremskridt.
4
Kald funktion fra markøren til det. Dette ville ske inde fra den funktion, du skrev, at accepterer en funktion pointer som en parameter : Hej
void doSomething ( int data) {}
void callAnotherFunction (void ( * otherFunction ) ( int ) ) {
( * otherFunction ) (3 ),
}
int main ( int argc , char * argv []) {
callAnotherFunction ( & doSomething ) tilbagevenden 0;
}