So implementieren Sie Call by Reference in C ++



In diesem Artikel erhalten Sie detaillierte Informationen zu Call by Reference in C ++ mit Implementierungen und deren Unterschieden zu Call by Value.

Die Arbeit mit C ++ ist keine schwierige Aufgabe, wenn Sie bereits einen Hintergrund in C haben, da beide eine Vielzahl von Konzepten miteinander teilen. C ++ hat jedoch einige Konzepte, die nicht Teil des C-Paradigmas sind. In diesem Call by Reference in C ++ - Artikel werden wir über ein solches Konzept sprechen, nämlich Referenzvariablen und ihre Anwendungen in der folgenden Reihenfolge:

Referenzvariablen

C ++ gibt uns einen neuen Variablentyp, d. H. Eine Referenzvariable. Wir können uns eine Referenzvariable als Spitznamen für unsere ursprüngliche Variable vorstellen. Das ist die genaue Funktionalität einer Referenzvariablen in einer Zeile.





Wenn Sie beispielsweise Harrison heißen, aber zu Hause sind, nennen Sie Ihre Familienmitglieder Harry. Lassen Sie uns nun einige Details der Referenzvariablen durchgehen. Die Deklaration und Verwendung dieses Variablentyps unterscheidet sich von den üblichen Variablen, die wir verwenden, ist jedoch den Zeigervariablen sehr ähnlich.

Syntax:



c ++ - Speicherklasse
int Hallo = 1 int * ptr int & World = Hallo

Wenn wir eine Variable 'Hallo' erstellen, die den Wert '1' enthält, wird ein Speichersegment verwendet, um den Wert '1' zu verletzen. Der Name dieses Segments lautet 'Hallo' und die Adresse dieses Segments ist beispielsweise ein Hex-Wert0x64. wenn wir schreibenint& World = HalloEs wird eine 'Welt' -Variable erstellt, die auf denselben Speicherort zeigt.

Wenn Sie die Zeile World ++ einschließen, werden Änderungen an der Adresse 0x64 vorgenommen. Dies bedeutet, dass sich auch der Wert der Variablen 'Hello' ändert. Einige könnten darauf hinweisen, wie es geht Referenzvariablen, die sich von den Zeigervariablen unterscheiden, die wir im letzten Teil dieses Beitrags diskutieren werden.

Call by Value und Call by Reference in C ++

Call by Value: Call by Value ist eine weit verbreitete Methode. In den meisten Fällen verwenden Sie den Call-by-Value-Ansatz, da Sie nicht möchten, dass Ihre ursprünglichen Werte der Variablen geändert werden. Daher haben wir die Methode call by value verwendet, um eine Funktion aufzurufen. Es werden nur die Werte der Variablen übergeben. Dies wird erreicht, indem Dummy-Variablen im Speicher erstellt werden.



#include using namespace std void add (int a, int b) {a = a + 10 b = b + 10 cout<<'Value of a = '<  Aufruf nach Wert in C ++

Aus dem obigen Bild können wir ersehen, dass die Werte der x- und y-Variablen in die Variablen a und b kopiert werden, sobald wir die Funktion add () aufrufen. A und b sind Dummy-Variablen.

Call by Reference: Lassen Sie uns nun über den Aufruf der Referenzmethode sprechen. Bei dieser Methode werden keine separaten Dummy-Variablen erstellt, sondern eine Referenz einer bereits vorhandenen Variablen an die Methode übergeben. Diese Referenz verweist auf denselben Speicherort, daher werden keine separaten Kopien im Speicher erstellt. Der wichtige Punkt, der hier zu beachten ist, ist, dass die an den Referenzvariablen vorgenommenen Änderungen in der Dummy-Variablen widergespiegelt werden.

#include using namespace std void add (int & a, int & b) {a = a + 10 b = b + 10 cout<<'Value of a = '< int & min (int & a, int & b) {if (a 

Wie wir sehen können, sieht die obige Funktion anders aus als normale Funktionen, da der Rückgabetyp 'int &' ist. Diese Funktion gibt je nach Bedingung einen Verweis auf a oder b zurück. Der wichtige Punkt hierbei ist, dass die Wertewerden nicht zurückgegeben.

Wenn wir die Funktion min (x, y) = 10 aufrufen, wird x x zugewiesen, wenn es minimal ist, oder y, wenn y minimal ist.

Call by Reference Vs Pointer

In all unseren Beispielen haben wir der von uns erstellten Referenzvariablen immer einen Wert zugewiesen, da die Referenzvariablen nicht NULL sein können, während Zeigervariablen NULL sein können und unerwartete Fehler verursachen können.

Referenzvariablen können nicht neu zugewiesen werden, während Zeigervariablen später im Programm auf eine andere Variable zeigen können.

Eine Zeigervariable enthält den Adresswert einer bestimmten Variablen, während die Adresse der Referenzvariablen mit der der Variablen übereinstimmt, auf die sie sich bezieht.

Damit ist der Call By Reference in C ++ - Artikel beendet. Ich hoffe, Sie haben ein Verständnis für die verschiedenen Implementierungen des Aufrufs nach Wert und Referenz und für die Unterschiede zwischen beiden.

Wenn Sie mehr erfahren möchten, lesen Sie die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka wurde entwickelt, um Sie für Kern- und fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring zu schulen.

Hast du eine Frage an uns? Bitte erwähne es im Kommentarbereich dieses Blogs und wir werden uns so schnell wie möglich bei dir melden.