Diese Objekte verhalten sich wie Funktionen, jedoch mit zusätzlichem Zustand und Funktionalität. Sie können verwendet werden, um mehr Flexibilität und Anpassung als eine einfache Funktion zu bieten, und werden häufig in Behältern wie STD :: Sort und Std :: find_if verwendet.
So schreiben Sie Funktionsobjekte?
Zu schreiben a Funktionsobjekt, Wir müssen eine Klasse erstellen, die den Funktionsaufrufoperator überlastet (). Die Instanzen der Klasse können als konventionelle Funktionen dank dieses Bedieners aufgerufen werden, was eine entscheidende Komponente von a ist Funktionsobjekt. Die Syntax zum Überladen des Bedieners lautet:
Klasse myFunctionObject
öffentlich:
Returntype operator () (paramtype1 p1, paramtype2 p2,…)
// Implementierung
;
Wo Rückkehr ist der Rückgabetyp der Funktion und Paramtype1, Paramtype2, und so weiter sind die Typen der Funktionsparameter. Die Implementierung des Operators () sollte die Logik des Funktionsobjekt.
So verwenden Sie Funktionsobjekte in C++
Sobald wir eine Klasse definiert haben, die den Funktionsaufrufoperator überlastet und die Logik der Ausführung des Funktionsobjekt, Wir können es wie folgt verwenden:
#enthalten
Klasse Square
öffentlich:
int operator () (int x) const
return x * x;
;
int main ()
Quadratisches Quadrat;
int nummer = 5;
int result = square (number);
std :: Cout << "The square of " << number << " is " << result << std::endl;
Rückkehr 0;
Im obigen Beispiel konstruieren wir die quadratische Klasse, deren Operator () -Funktion das Quadrat einer Ganzzahl x zurückgibt, wenn sie als Argument bestanden werden. Wir erstellen ein quadratisches Objekt namens Quadrat in der Funktion main () und verwenden es, um das Quadrat einer Ganzzahlnummer zu finden.
Ausgang
Vorteile von Funktionsobjekten
Funktionsobjekte bieten mehrere Vorteile gegenüber traditionellen Funktionen in C++. Sie bieten mehr Flexibilität bei der Verwendung von Algorithmen, da sie im Gegensatz zu herkömmlichen Funktionen so angepasst werden können,. Sie können auch einen Zustand enthalten, der für die Aufrechterhaltung von Informationen zwischen Anrufen nützlich sein kann, während herkömmliche Funktionen völlig staatenlos sind.
Zusätzlich, Funktionsobjekte kann als Argumente an andere Funktionen übergeben werden, die den Code prägnanter und leichter zu lesen können. Sie ermöglichen es uns auch, C ++ - Funktionen wie Vorlagen zum Schreiben generischer Code zu verwenden, der mit verschiedenen Datentypen, iterablen und Algorithmen funktioniert.
Ein Vorteil der Verwendung a Funktionsobjekt Anstelle einer einfachen Funktion ist, dass es zusätzliche Zustände oder Funktionen haben kann, die angepasst werden können.
Abschluss
Funktionsobjekte In C ++ sind eine nützliche Technik zum Schreiben wiederverwendbarer Code, der eine größere Flexibilität bietet als herkömmliche Funktionen. Sie können sie nutzen, indem Sie eine Klasse erstellen, die den Funktionsaufrufoperator überschreibt, der dann als Argumente an Algorithmen übergeben werden kann, die verwendet werden Funktionsobjekte als Eingänge. Verwendung Funktionsobjekte Hat die Vorteile, flexibel, staatlich, generisches und benutzerfreundliches zu sein. Mit Funktionsobjekte, Wir können ausdrucksstärkere, kompaktere und verständliche Code schreiben, der auch einfacher zu pflegen ist.