Ringe Pointed Funksjon av Pointer Mens functionPointer og actualFunctionName er synonymt du kan kalle den faktiske funksjon ved hjelp functionPointer på samme måte som du ville gjort oss actualFunctionName. I vår situasjon ovenfor, ville du gjøre for eksempel myFnPtr (68,78, 50) viser Eksempel Følgende kode hvordan du kan lage en peker til en funksjon og bruke den til å ringe funksjon: # include bruker namespace std; flyte myFn (float ident1, int ident2) {float forskjell = ident1 - ident2; returnere forskjell; } Float (* myFnPtr) (float, int) = myFn; int main () {float svar = myFnPtr (6,5, 2); domstol returnere 0; } Pointer av erklæringen I eksemplene ovenfor pekeren har blitt opprettet som, float (* myFnPtr) (float, int) = myFn; Dette skaper pekeren ved initialisering.
I uttalelsen adressen til den spisse funksjon er lagret i pekeren objekt (myFnPtr), under opprettelse av markøren. Du kan opprette pekeren ved erklæring og deretter tildele adressen verdi senere som følger: float (* myFnPtr) (float, int); myFnPtr = myFn; I dette tilfellet, bør begge uttalelser eller oppdraget uttalelsen være i en funksjon (som den viktigste funksjonen). Bruk av Pekeren til en funksjons Den primære bruken av en peker til en funksjon som en parameter til en annen funksjon.
Følgende kode illustrerer dette: # include bruker namespace std; flyte myFn (float ident1, int ident2) {float forskjell = ident1 - ident2; returnere forskjell; } Flyte squareDifference (float (* myFnPtr) (float, int)) {float sqr = myFnPtr (6,5, 2) * myFnPtr (6,5, 2); returnere sqr; } Int main () {float svar = squareDifference (myFn); domstol returnere 0; } Hemmeligheten er at du dele initialisering til sin venstre og høyre operand. Venstre operand går inn i parentes i annen funksjon (squareDifference) som en parameter, mens den høyre operand er brukt som argument i kallet den andre funksjonen.
Det vi har gjort her er å passere en peker til en funksjon samme som hva som skjer med pekere på grunnleggende gjenstander. Parameteren av funksjonen (squareDifference) er pekeren erklæring mens argumentet for det kall funksjon