I C + + , en funktion objekt är en klass -objekt som du kan använda som en funktion . Det fungerar på samma sätt som andra funktioner , förutom att du använder operatören funktionsanropet att överföra värden till klassen Object . Till exempel kan ett funktionsobjekt ta en serie tal , även om du inte vet hur många användare kommer att leverera när du skriver koden , och lägg dem tillsammans för att spara resultatet i klassen objektet . Använd
vill använda en funktion objekt , du först definiera och skapa ett objekt klass , sedan skapa en funktion som heter " operatör " som en av de public function medlemmar . Om du skapar privata medlemsvariabler , kan du ställa in sitt värde i klasskonstruktorn , sedan ändra dem med andra värden passerade operatören funktionen . C + + har en fördel jämfört med liknande programmeringsspråk som Java , eftersom alla språk inte tillåter operatören överbelastning .
Syntax
Du skapar funktionsobjekt liknande till någon annan objekt i ett C + + -program . Du definierar en ny klass , sedan skapa medlemsvariabler och offentliga och privata funktioner som behövs . Dock är en av de allmänna funktioner som du behöver för att genomföra funktionsanropet operatören , vilket gör att du kan använda klassen objektet i ditt program som en funktion . I själva programmet , skapar du funktionsobjekt på samma sätt som alla andra föremål , genom att skriva klassnamnet , då objektet namn .
Call Operator
samtalet operatören funktionen är det som gör en funktion objekt skiljer sig från andra klassens objekt . Syntaktiskt , måste du använda två uppsättningar fästen för att skapa en operatör funktion . Till exempel skriver " void operatör ( ) ( int val1 ) { totalt + = val1 ;} ; " kan du använda objektet som en funktion för att lägga till värden till en löpande summa i en gruppmedlem variabel . Du kan sedan använda denna variabel totalt i andra klass funktioner .
Överbelastning
Överbelastning funktionen operatören inte ändra hur du anropar funktionen , modifierar det hur du passerar värden till objektet. Det låter dig skicka ett godtyckligt antal argument , som hjälper om du inte vet hur många du behöver skicka vid körning . Till exempel , om du har en klass konstruktor som bara tar två parametrar och har en operatör funktionsanrop som tar tre , kan du använda en befintlig funktion objekt för att initiera en ny , men passera tre parametrar att det i stället för två . Detta överbelastar konstruktören och tvingar operatören funktion för att initiera värdena .