Dator > hur man använder funktionen pekare i C + +

  • hur man använder funktionen pekare i C + +


  • En funktion pekaren är i huvudsak bara en pekare till en funktion . I språk som C + + , finns varje funktion och variabel i ett datorprogram som ett minne adress och en variabel kan innehålla värdet av den adressen . Denna variabel kan skickas till en återuppringning, som sedan kan kalla den funktion som variabeln pekar på . Den kan också användas i ett event manager , eller för sen bindning av en medlem funktion . På grund av sin komplicerade syntax är funktionspekare ofta undvikas genom att programmerare , men kan användas för att enkelt utföra många kraftfulla uppgifter .

    Du behöver :
    C + + kompilator


    1
    Skriv en C + + -program . . Detta är det program som du kommer att använda en funktion pekare .
    2 .
    Definiera en funktion pekare . Du kan göra detta till ett av flera sätt. Deklarera en funktion , till exempel :

    void doSomething ( int data ) ,

    och senare förklara en pekare till det . Eller så kan du deklarera en funktion som en pekare :

    void ( * doSomething ) ( int ) ;

    Slutligen , kan du förklara en typedef , sedan skapa en variabel av att . typen

    typedef void ( * voidTakingInt ) ( int ) ;

    Du kan nu använda " voidTakingInt " som en typ :

    void doSomething ( int data ) ,
    voidTakingInt fun_ptr= doSomething ;
    3 .
    fastställa något som använder funktionen pekaren . Detta är ofta något som använder funktionen pekaren som en callback- funktion , så att när en viss händelse inträffar , körs funktionen din funktion . Ett exempel är en fil -loading funktion som tar en callback -funktion för att ange framsteg .
    4 .
    Anropa funktionen från pekaren till det . Detta skulle ske inifrån den funktion som du skrev som accepterar en funktion pekare som parameter :

    void doSomething ( int data ) { }


    void callAnotherFunction ( void ( * otherFunction ) ( int )) {

    ( * otherFunction ) ( 3) ,

    }

    int main ( int argc , char * argv [ ] ) {

    callAnotherFunction ( doSomething ) ,
    återvända 0 ;

    }

    tips och varningar


  • objektorienterad programmering , funktioner är ofta medlemmar i en viss klass . Icke- statisk medlem funktioner kan inte skickas som funktion pekare . Ett vanligt tillvägagångssätt är att passera istället en pekare till ett objekt som sedan kan ringa nödvändiga medlemsfunktion . Ett annat sätt är att skapa en statisk medlem funktion som tar som en data parameter, som skulle användas för att passera en instans av objekttypen . Detta kan sedan ringa lämplig medlemsfunktion . Till exempel :
  • //Detta förklarades som statiska i MyClass specifikation
  • ogiltigt MyClass : : callAnotherFunction (VOID * data ) {
  • MyClass * exempel=( MyClass *) ( data ) ,
  • intance-> doSomething ();
  • }

Previous:Vilka är fördelarna med Java uppgradera ? Next:hur du ställer syntax markören standard i Visual Basic





Relaterade artiklar


  • hur till över klockan Pentium D 805-processor
  • thinkpad 2645 specs
  • hur du tar bort den främre omslaget till en OptiPlex 755
  • HP 9700 specs
  • hur unjam skrivhuvudet Epson cx6000
  • hur man använder USB-enheter för extra minne på bärbara datorer
  • Toshiba l305d-s5892 specifikationer
  • hur du återvinner dokumentförstörare
  • Hur mycket energi en Smartboard använda?
  • IBM X60 specifikationer