*   >> Læs Uddannelse artikler >> science >> programming

Pointer at fungere i C ++

en for funktionen. ParameterTypes er parameterværdierne typer af funktionen pegede på. De parenteser og stjernen er påkrævet. Antag, at du vil have en pegepind til myFn () funktionen ovenfor med navnet, myFnPtr. I dette tilfælde markøren initialiseringen er, float (* myFnPtr) (float, int) = myFn; Nu navnet på en funktion (f.eks myFn) er faktisk en pegepind til en funktion. Så functionPointer og actualFunctionName blevet synonym. I vores tilfælde, myFnPtr og myFn blevet synonym.

Opkald Spids Funktion af Pointer Mens functionPointer og actualFunctionName er synonyme du kan kalde den aktuelle funktion ved hjælp functionPointer på samme måde, som du ville os actualFunctionName. I vores situation ovenfor, ville du gøre for eksempel myFnPtr (68,78, 50) Eksempel Følgende kode viser, hvordan du kan oprette en pegepind til en funktion, og bruge det til at kalde funktionen: #include bruge namespace std; flyde myFn (float ident1, int ident2) {float forskel = ident1 - ident2; tilbage forskel; } Float (* myFnPtr) (float, int) = myFn; int main () {float svar = myFnPtr (6,5, 2); cout returnere 0; } Pointer af erklæring I eksemplerne ovenfor markøren er blevet skabt som, float (* myFnPtr) (float, int) = myFn; Dette skaber pointer ved initialisering.

I oversigten adressen på den spidse Funktionen er gemt i markøren objekt (myFnPtr), under oprettelsen af ​​markøren. Du kan oprette markøren ved erklæring, og derefter tildele adressen værdi senere som følger: float (* myFnPtr) (float, int); myFnPtr = myFn; I dette tilfælde skal begge erklæringer eller opgaven erklæring være i en funktion (som den vigtigste funktion). Brug af Pointer til en funktion Den primære anvendelse af en pointer til en funktion er som en parameter til en anden funktion.

Følgende kode illustrerer dette: #include hjælp namespace std; flyde myFn (float ident1, int ident2) {float forskel = ident1 - ident2; tilbage forskel; } Flyde squareDifference (float (* myFnPtr) (float, int)) {float sqr = myFnPtr (6,5, 2) * myFnPtr (6,5, 2); returnere sqr; } Int main () {float svar = squareDifference (myFn); cout returnere 0; } Hemmeligheden er, at du opdele initialiseringen i sin venstre og højre operand.

Den venstre operand går i parentes i den anden funktion (squareDifference) som en parameter, mens den højre operand bruges som argument på den opkaldende i den anden funktion. Hvad vi har gjort her er at passere en pegepind til en funktion samme som, hvad der sker med pointere de grundlæggende objekter. Parameteren af

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.