So verwenden Sie Funktionsreferenzen in C ++

So verwenden Sie Funktionsreferenzen in C ++
C ++ bietet verschiedene Methoden zur Übergabe von Argumenten an Funktionen, einschließlich Wert, nach Zeiger und Referenz. Durch die Übergabe von Argumenten durch Referenz können Funktionen die Werte der ursprünglichen Variablen ändern, anstatt nur mit Kopien zu arbeiten. Die Funktionsreferenzen bieten eine alternative Möglichkeit, Argumente durch Referenz zu übergeben und den Code zu vereinfachen, indem die Notwendigkeit einer Zeigersyntax beseitigt wird.

In diesem Artikel wird untersucht, wie man benutzt Funktionsreferenzen in c++, einschließlich Syntax, ein Beispiel und Vorteile in C++.

Was sind Funktionsreferenzen in C++

Entwickler können verwenden Funktionsreferenzen in C ++, um Code zu schreiben, der sowohl effektiver als auch ausdrucksstärker ist. Funktionsreferenzen, Lassen Sie Programmierer im Vergleich zu herkömmlichen Funktionsaufrufen ganze Funktionen als Parameter an andere Funktionen senden. Dies hat eine Vielzahl von Vorteilen, einschließlich verbesserter Code -Lesbarkeit, erweiterter Function Design Freedom und erheblichen Leistungssteigerungen.

Eine Schlüsselfunktion von C ++ ist die Möglichkeit, Funktionen als Parameter an andere Funktionen zu senden Funktionsreferenzen. Bei der Arbeit mit großen und komplexen Anwendungen kann dies immens hilfreich sein, da dies eine größere Flexibilität und Abstraktion fördert.

So verwenden Sie Funktionsreferenzen in C++

Die grundlegende Syntax für die Deklaration a Funktionsreferenz ist wie folgt:

Rückgabe- und Funktionsref-Name (Parameter)

In diesem Fall, "Funktionstyp" Bezieht sich auf die Art der Funktion, die wir als Argument senden möchten, "Return-Typ" bezieht sich auf die Art des Wertes der Funktionsreferenz kehrt zurück und "Parameter" bezieht sich auf die verabschiedeten Argumente.

Es gibt bestimmte grundlegende Schritte zur Verwendung Funktionsreferenzen in c++. Erstellen Sie eine Funktion, die zuerst eine Funktionsreferenz als Argument akzeptiert. Jede Funktion, die mit dem Referenztyp übereinstimmt, muss in der Lage sein, diese Funktion zu verarbeiten. Ihre Funktion muss in der Lage sein, jede Funktion dieser Art zu bewältigen.

#enthalten
int add (int a, int b)
Return a + b;

int subtrahieren (int a, int b)
Rückkehr a - b;

int main ()
int (*padd) (int, int) = add;
int (*psubtract) (int, int) = subtrahieren;
std :: Cout << "6 + 4 = " << pAdd(6, 4) << std::endl;
std :: Cout << "8 - 2 = " << pSubtract(8, 2) << std::endl;
Rückkehr 0;

Im obigen Code addieren und subtrahieren beide Funktionen zwei Integer -Parameter und geben einen Ganzzahlwert zurück. Anschließend definieren wir zwei Funktionen Referenzvariablen für Funktionen Padd Und Psubract, Dies sind Hinweise auf Funktionen, die zwei Ganzzahlargumente akzeptieren und einen Ganzzahlwert ausgeben. Mit den Adressen der Add- bzw. Subtrahieren initialisieren wir diese Variablen. Anschließend können wir die Funktionsreferenzvariablen Padd und Psubract verwenden, um diese Funktionen indirekt aufzurufen.

Ausgang

Beim Benutzen Funktionsreferenzen in c++, Sie sollten sich an bestimmte Best Practices halten. Vor etwas anderem ist es wichtig zu bestätigen, dass alle Funktionen, auf die Sie Verweise geben. Dies zeigt an, dass sie einfach die Eingabeparameter verwenden, die ihnen zur Verfügung gestellt wurden und keinen externen Zustand verändern. Das liegt daran, dass die Verwendung verwendet wird Funktionsreferenzen Änderungen am externen Zustand zu verwalten, kann unerwartete Ergebnisse erzielen, da sie dies nicht beabsichtigt hatten.

Wenn Sie eine Funktion als Argument an eine andere Funktion übergeben, beispielsweise bei Verwendung eines Sortieralgorithmus, der eine Vergleichsfunktion als Argument akzeptiert, Funktionsreferenzen kann hilfreich sein. Darüber hinaus können sie verwendet werden, um Callback -Funktionen zu implementieren, bei denen eine Funktion aufgerufen wird, wenn ein bestimmtes Ereignis stattfindet.

Vorteile der Verwendung von Funktionsreferenzen

1: Effizienter Code

Wenn Sie verwenden Funktionsreferenzen, Sie können auch von einer Vielzahl von C ++ - Funktionen profitieren, mit denen Sie Code erstellen können, die sauberer und effektiver sind. Zum Beispiel können Sie einen unglaublich leistungsfähigen und vielseitigen Code schreiben, indem Sie kombinieren Funktionsreferenzen Mit anderen C ++ - Funktionen wie Iteratoren, Bedienerüberlastung und Vorlagen.

2: Leistungsverbesserungen

Die Fähigkeit, die Leistung erheblich zu steigern, ist vielleicht der größte Vorteil von Funktionsreferenzen. A Funktionsreferenz ist ein Zeiger auf die Funktion, wenn sie übergeben wird. Auf diese Weise können Sie Speicherplatz sparen, indem Sie nicht jedes Mal eine Kopie der Funktion erstellen, wenn sie aufgerufen wird. Dies kann extrem wichtig sein, wenn es sich um zeitaufwändige, komplizierte oder groß angelegte Funktionen handelt.

3: Passfunktionen als Argumente bestehen

Die Fähigkeit, Funktionen als Parameter für andere Funktionen bereitzustellen, ist einer der wichtigsten Vorteile der Verwendung Funktionsreferenzen. Sie können anfangen, bereitzustellen Funktionsreferenzen als Argumente nach der Konfiguration Ihrer Funktion. Geben Sie einfach die Referenz auf die entsprechende Funktion über, wenn Sie die Funktion aufrufen. Dies kann entweder durchgeführt werden, indem die Funktion explizit benannt wird oder eine Lambda -Funktion verwendet. Letzteres ist besonders hilfreich, wenn Sie eine unbenannte oder inline-deklarierende Funktion übergeben müssen.

Abschluss

Für Programmierer, die versuchen, effektivere und ausdrucksstärkere Code zu erstellen, Funktionsreferenzen In C ++ sind wichtig. Sie können die Flexibilität beim Funktionsdesign steigern, die Code -Lesbarkeit erhöhen und durch Bestehen erhebliche Leistungsvorteile erzielen Funktionsreferenzen als Parameter. Sie können mit der Verwendung beginnen Funktionsreferenzen In Ihrem C ++ - Code und profitieren Sie von all ihren Vorteilen mit ein wenig Praxis.