Funktoren in C++
Dieses einfache Tutorial stellt Funktoren und ihre Verwendung in der Programmiersprache C++ vor. Zunächst stellt dieser Artikel Funktoren kurz vor und bewegt sich dann in Richtung seiner Syntax und Verwendbarkeit.
Einführung in Funktoren in C++
Funktoren sind die Klassenobjekte, die sich wie Funktionen verhalten können. In der C++ Standard Template Library (STL) sind zahlreiche Funktoren verfügbar, und Sie können auch Ihre eigenen erstellen.
Der Hauptvorteil von Funktoren besteht darin, dass sie, obwohl sie keine Funktionen sind, den Zustand speichern können, da sie Klassenobjekte sind.
Funktoren werden durch Überladen des Operators ()
in einer beliebigen Klasse erstellt, sodass das Objekt dieser Klasse aufgerufen werden kann, wie wir eine einfache Funktion nennen.
Schauen wir uns das Beispiel unten an, um ein klares Verständnis zu haben.
class Hello {
public:
void operator()() { cout << "Hello from Functor" << endl; }
};
Um dies nun zu verwenden, erstellen wir ein Objekt der Klasse Hello
und nennen es wie folgt:
int main() {
Hello hello;
hello();
return 0;
}
Ausgabe:
Hello from Functor
Der Ausgabe können wir entnehmen, dass der Funktionsaufrufoperator ()
aufgerufen wird, wenn wir das Objekt mit dem Operator verwenden.
Funktoren mit Parametern in C++
Funktoren können auch so definiert werden, dass sie einige Parameter und einen Rückgabetyp haben, genau wie Funktionen. Wir können den vorherigen Funktor ändern, um den Parameter darin einzuschließen.
class Hello {
public:
void operator()(string name) {
cout << "Hello " << name << " from Functor" << endl;
}
};
Um dies aufzurufen, müssen wir auch den Parameter übergeben.
int main() {
Hello hello;
hello("david");
return 0;
}
Ausgabe:
Hello david from Functor
Vordefinierte Funktoren in C++
Zahlreiche Funktoren sind in funktionalen
Header-Dateien enthalten, die in der C++ Standard Template Library gepackt sind. Einige davon werden hier besprochen.
Name des Funktors | Beschreibung |
---|---|
plus |
Berechnet die Summe zweier als Parameter übergebener Zahlen. |
minus |
Berechnet die Differenz zwischen zwei als Parameter übergebenen Zahlen. |
multiplies |
Berechnet das Produkt zweier als Parameter übergebener Zahlen. |
divides |
Berechnet das Divisionsergebnis zweier als Parameter übergebener Zahlen. |
equal_to |
Überprüft, ob die beiden übergebenen Parameter gleich sind oder nicht. |
not_equal_to |
Überprüft, ob die beiden übergebenen Parameter ungleich sind. |
greater |
Überprüft, ob der erste Parameter größer als der zweite ist. |
less |
Überprüft, ob der erste Parameter kleiner als der zweite ist. |
Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.
LinkedIn