Funktoren in C++

Muhammad Husnain 12 Oktober 2023
  1. Einführung in Funktoren in C++
  2. Funktoren mit Parametern in C++
  3. Vordefinierte Funktoren in C++
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.
Muhammad Husnain avatar Muhammad Husnain avatar

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