Verwendung von Funktionszeigern in C++

Verwendung Von Funktionszeigern In C



In C++, Funktionszeiger bieten ein potentes Werkzeug zum Manipulieren von Funktionen als Daten. A Funktionszeiger ist eine Variable, die die Speicheradresse einer Funktion enthält. Er funktioniert ähnlich wie ein Standardzeiger, außer dass er die Adresse einer Funktion und nicht die Adresse eines Datenobjekts speichert. Es ist wichtig, das im Hinterkopf zu behalten Funktionszeiger sind einfach eine andere Art von Variablen in C++ und müssen daher ähnlich wie andere Variablen deklariert und initialisiert werden.

Definieren eines Funktionszeigers

Die Syntax zum Deklarieren von a Funktionszeiger ist wie folgt:







Rückgabetyp ( * func_ptr_name ) ( Parameterliste ) ;



Hier, func_ptr_name ist der Name der Funktionszeiger , Rückgabetyp ist der Rückgabetyp der Funktion und Parameterliste ist die Liste der Parameter, die die Funktion übernimmt.



Hier ist ein Codebeispiel zur Verwendung eines Funktionszeigers in C++.





#include
#include
mit Namensraum std;

leerer Würfel ( int x )
{
cout << „Die Kubik einer Zahl ist“ << X * X * X << endl;
}

int Haupt ( )
{
Leere ( * SpaßPtr ) ( int ) ;
funPtr = & Würfel;
SpaßPtr ( 5 ) ;
zurückkehren 0 ;
}

Im obigen Code ist die Funktionszeiger wird für nichtig erklärt (*funPtr)(int) , und es wird initialisiert, indem die Adresse der Funktion cube() in gespeichert wird SpaßPtr , bedeutet, dass SpaßPtr weist auf die Funktion hin Würfel () . Daher können wir die Würfelfunktion mit dem funPtr ( Funktionszeiger ) wie im Code funPtr (5).



Ausgang

A Funktionszeiger , im Gegensatz zu anderen Zeigern, zeigt eher auf Code als auf Daten. A Funktionszeiger speichert oft den Anfang von ausführbarem Code. Im Gegensatz zu Standardzeigern verwenden wir keine Funktionszeiger Speicher zuzuweisen oder freizugeben. Wie wir im obigen Programm gesehen haben, ist es auch möglich, den Namen einer Funktion zu verwenden, um ihre Position zu bestimmen. Die gleichen Regeln, die für normale Zeiger gelten, gelten auch für ein Array von Funktionszeiger . Die Verwendung von Funktionszeigern kann anstelle von Schalterfällen verwendet werden. A Funktionszeiger kann als Argument geliefert und von einer Funktion zurückgegeben werden, genau wie ein Datenzeiger.

Vorteile von Funktionszeigern

Die wichtigsten Vorteile von Funktionszeiger Sind unten aufgeführt.

1: Wiederverwendbarkeit des Codes

Einer der wichtigsten Vorteile der Verwendung Funktionszeiger ist, dass sie die Wiederverwendbarkeit im Code ermöglichen. Anstatt eindeutige Funktionen für jeden Umstand schreiben zu müssen, können Sie Funktionen entwerfen, die allgemein genug sind, um mit einer Vielzahl unterschiedlicher Arten von Eingabedaten umzugehen, indem Sie a definieren Funktionszeiger eingeben und konsequent im gesamten Code verwenden. Stattdessen müssen Sie nur das Recht bereitstellen Funktionszeiger zur Laufzeit oder über eine Konfigurationsdatei, und die Funktion passt sich den Anforderungen des aktuellen Jobs an. Dies beschleunigt nicht nur den Entwicklungsprozess, sondern verbessert auch die Modularität und langfristige Wartbarkeit Ihres Codes.

2: Dynamisches Laufzeitverhalten

Die Möglichkeit, dynamisches Laufzeitverhalten zu implementieren, ist ein weiterer Vorteil der Verwendung Funktionszeiger . Beispielsweise können Sie eine Funktion haben, die eine bestimmte Berechnung ausführt, aber der genaue Algorithmus, der zur Durchführung dieser Berechnung verwendet wird, hängt von der Benutzereingabe oder den Systembedingungen ab. Durch das Speichern von a Funktionszeiger der jedem möglichen Algorithmus entspricht, können Sie zur Laufzeit mit if-else-Anweisungen oder anderer bedingter Logik den passenden auswählen. Auf diese Weise können Sie hochgradig flexiblen Code entwickeln, der auf sich ändernde Bedingungen reagieren kann, ohne dass das gesamte Programm neu erstellt werden muss.

3: Flexibilität

In C++, Funktionszeiger bieten ein leistungsfähiges Werkzeug zum Erstellen flexiblen, generischen Codes. Funktionszeiger sind im Wesentlichen Variablen, die die Adresse des Speicherplatzes einer Funktion enthalten. Sie ermöglichen es, Funktionen in Datenstrukturen wie Arrays oder Listen zu speichern, als Argumente für andere Funktionen bereitzustellen und sogar zur dynamischen Auswahl der richtigen auszuführenden Funktion basierend auf Laufzeitumständen oder Benutzereingaben zu verwenden.

Abschluss

Funktionszeiger in C++ sind effektiv, die dynamisches Laufzeitverhalten und Wiederverwendung von Code unterstützen. Sie können äußerst flexiblen und anpassungsfähigen Code schreiben, der sich im Laufe der Zeit an sich ändernde Anforderungen anpassen kann, indem Sie die Adressen von Funktionen in Variablen speichern. Funktionszeiger sind für jeden professionellen C++-Programmierer notwendig, obwohl sie einige Arbeit erfordern, um sie zu lernen.