In C + +, ein Funktions-Objekt ist ein Objekt der Klasse , die Sie als eine Funktion verwenden können. Es funktioniert ähnlich wie andere Funktionen , außer dass Sie die Funktionsaufrufoperator verwenden, um Werte für das Objekt -Klasse übergeben . Zum Beispiel kann eine Funktion Objekt nehmen eine Reihe von Zahlen , auch wenn Sie nicht wissen, wie viele der Benutzer zu liefern, wenn Sie den Code schreiben, und fügen sie zusammen , um das Ergebnis in der Klasse Objekt zu speichern . Verwenden
Um eine Funktion Objekt verwenden , müssen Sie zunächst definieren und eine Objekt-Klasse , dann erstellen Sie eine Funktion namens "Betreiber" als einer der public function Mitglieder. Wenn Sie privaten Membervariablen erstellen, können Sie deren Wert im Konstruktor der Klasse gesetzt ist, dann ändern Sie sie mit anderen Werten durch den Betreiber übergeben . C + + hat einen Vorteil gegenüber ähnlichen Programmiersprache wie Java, da diese nicht für andere Sprachen Überladen von Operatoren erlauben .
Syntax
Sie erstellen Funktion Objekte ähnlich wie jede andere Objekte in einer C + + -Programm. Sie definieren eine neue Klasse , dann erstellen Sie Member-Variablen sowie öffentliche und private Funktionen nach Bedarf . Allerdings ist einer der öffentlichen Funktionen, die Sie für die Umsetzung der Funktionsaufrufoperator , mit dem Sie die Klasse Objekt in Ihrem Programm als Funktion ermöglicht . Im Körper des Programms erstellen Sie Funktions-Objekte auf die gleiche Weise wie jedes andere Objekt , indem Sie den Namen der Klasse , dann der Name des Objekts .
Anruf Operator
Die Call-Betreiber Funktion ist es, was eine Funktion Objekt von anderen Objekten Klasse . Syntaktisch , müssen Sie zwei Sätze von Klammern verwenden, um einen Operator -Funktion erstellen. Zum Beispiel die Eingabe von " void operator () ( int val1 ) {total + = val1 ; }; " können Sie das Objekt als eine Funktion von Werten an eine laufende Summe in einer Klasse Membervariable hinzufügen. Sie können dann diese Variable in anderen Klasse insgesamt Funktionen .
Überlastung
Überladen der Funktion Bediener nicht ändern, wie Sie die Funktion aufrufen , ändert es , wie Sie Werte übergeben auf das Objekt . Es erlaubt es Ihnen, eine beliebige Anzahl von Argumenten , die, wenn Sie nicht wissen, wie viele Sie zur Laufzeit übergeben müssen hilft . Zum Beispiel, wenn Sie eine Klasse Konstruktor, der nur zwei Parameter nimmt und Sie eine Funktionsaufrufoperator die drei nimmt , können Sie eine vorhandene Funktions-Objekt um ein neues zu initialisieren , aber drei Parameter übergeben , um es statt zwei . Dies überlädt den Konstruktor und zwingt den Bediener , um die Werte zu initialisieren.