I C + +, en funktion objekt er en klasse , som du kan bruge som en funktion. Det virker på samme måde som andre funktioner , medmindre du bruge funktionen opkald operatøren til at overføre værdier til objektet klassen. For eksempel kan en funktion objekt tage en række tal , selvom du ikke ved, hvor mange brugeren vil levere , når du skriver koden , og tilføje dem sammen for at gemme resultatet i klassen objekt. Brug
For at bruge en funktion objekt , skal du først definere og skabe et objekt klasse, derefter oprette en funktion kaldet "operatør " som en af de offentlige funktioner medlemmer. Hvis du oprette private medlemsvariabler , kan du indstille deres værdi i klassen konstruktør , derefter ændre dem med andre værdier passerede gennem operatøren funktion. C + + har en fordel i forhold lignende programmeringssprog som Java, fordi disse andre sprog ikke tillader operatør overbelastning.
Syntaks
Du opretter funktion objekter på samme måde alle andre objekter i en C + +-programmet . Du definerer en ny klasse , derefter oprette medlem variabler og offentlige og private funktioner efter behov. Men en af de offentlige funktioner, du har brug for at gennemføre, er den funktion opkald operatør , som lader dig bruge klassen objekt i dit program som en funktion . I selve programmet kan du oprette funktionen objekter på samme måde som enhver anden genstand , ved at skrive klassens navn og derefter objektet navn.
Call Operator
opkald operatør -funktionen er , hvad der gør en funktion objekt forskellig fra andre klasse objekter. Syntaktisk , er du nødt til at bruge to sæt beslag til at skabe en operatør funktion. For eksempel at skrive " void operatør () ( int VRD1 ) { total + = VRD1 ;} ," lader dig bruge objektet som en funktion til at tilføje værdier til en løbende total i en klasse medlem variabel. Du kan derefter bruge denne variabel alt i andre klasse funktioner.
Overbelastning
Overbelastning funktionen operatøren ikke ændre, hvordan du kalder funktionen , det ændrer hvordan du overføre værdier til objektet . Det lader dig passere et vilkårligt antal argumenter , der hjælper, hvis du ikke ved, hvor mange du har brug for at passere på runtime . For eksempel, hvis du har en klasse konstruktør , der tager kun to parametre, og har en funktion opkald operatør , der tager tre kan du bruge en eksisterende funktion objekt at initialisere en ny, men bestå tre parametre det i stedet for to. Det overbelaster konstruktøren og tvinger operatøren funktionen til at initialisere værdierne.