Een functie pointer is in wezen slechts een pointer naar een functie . In talen zoals C + + , elke functie en variabele in een computerprogramma bestaat als een geheugenadres en een variabele de waarde van dat adres bevatten . Die variabele kan worden doorgegeven aan een callback , die vervolgens kan bellen met de functie die de variabele verwijst naar . Het kan ook worden gebruikt in een geval beheerder , of late binding van een lid functie . Door hun complexe syntax , zijn functiepointers vaak vermeden door programmeurs , maar kan worden gebruikt om vele krachtige taken goed te volbrengen. Wat je nodig hebt C + + compiler Toon Meer Aanwijzingen 1 Schrijf een C + + -programma . Dit is het programma waarin u een functie pointer te gebruiken . Kopen van 2 Definieer een functie pointer . U kunt dit een van de verschillende manieren doen . Verklaren een functie, zoals : leegte doSomething ( int data ) ; en later verklaren een pointer naar het. Of , kunt u een functie als een pointer verklaren : nietig ( * doSomething ) ( int ) ; Ten slotte kunt u verklaren een typedef , maak dan een variabele van dat type < br . typedef void > ( * voidTakingInt ) ( int ) ; U kunt nu gebruik maken van " voidTakingInt " als een type : leegte doSomething ( int data ) ; voidTakingInt fun_ptr = & doSomething ; < br > 3 Verklaar iets dat de functie pointer gebruikt . Dat zal vaak iets dat de functie pointer gebruikt als callback functie , zodat wanneer een bepaalde gebeurtenis voordoet , de functie werkt de functie . Een voorbeeld is een file -loading functie die een callback functie neemt om de voortgang aan te geven . 4 Roep de functie van de aanwijzer naar het. Dit zou moeten gebeuren vanuit de functie die u schreef dat een functie pointer als parameter accepteert : leegte doSomething ( int data ) { } nietig callAnotherFunction (void ( * otherFunction ) op Twitter ( int ) ) { ( * otherFunction ) ( 3 ) ; } int main ( int argc , char * argv [ ] ) { callAnotherFunction ( & doSomething ) return 0; }
|