Wie man Argumente an Funktionen in C ++ nach Wert vs übergibt. Durch Bezugnahme?

Wie man Argumente an Funktionen in C ++ nach Wert vs übergibt. Durch Bezugnahme?
Jede Programmiersprache, einschließlich C ++, muss die Möglichkeit haben, Parameter für Funktionen bereitzustellen. Von Wert und von Referenz sind die beiden Hauptmethoden, mit denen Parameter bestanden werden können. Beide Ansätze haben Vorteile und Nachteile, daher ist es für Programmierer von entscheidender.

1: Argumente nach Wert übergeben

Eine Kopie der Variablen wird erstellt und der Funktion zur Verfügung gestellt, wenn Argumente werden nach Wert verabschiedet. Alle Änderungen an der Variablen innerhalb der Funktion beeinflussen nur die Kopie. Nichts wird in die ursprüngliche Variable geändert. Infolge, nach Wert bestehen ist eine sichere Methode, da keine Möglichkeit besteht, den Wert der ursprünglichen Variablen ungewollt zu ändern.

Nach Wert bestehen, Möglicherweise ist jedoch ineffektiv, insbesondere im Umgang mit großen oder komplizierten Datentypen. Jeder Funktionsaufruf, der eine Kopie der Daten erfordert. Außerdem, nach Wert bestehen Kann nicht für Funktionen verwendet werden, die darauf abzielen, den Wert der ursprünglichen Variablen zu ändern, da die Kopie und die ursprüngliche Variable nicht verknüpft sind.

2: Argumente durch Bezugnahme übergeben

Variablen können sein durch Referenz bestanden Auch in C ++, was hilft, diese Probleme zu lösen. Die ursprüngliche Variable wird an die Funktion gesendet, wenn Vorbeigehen von Referenz, und alle Änderungen an der Variablen innerhalb der Funktion beeinflussen auch die ursprüngliche Variable. Aus diesem Grund, Vorbeigehen von Referenz ist für große oder komplizierte Datentypen wesentlich effektiver und vermeidet das Kopieren.

Um unbeabsichtigte Änderungen zu verhindern, muss eine Funktion explizit als const bezeichnet werden. Hinzufügen des CONT -Schlüsselworts zur Funktionserklärung, wie in „Int Calculate (const int & a, const int & b)“, wird dies erreichen.

Jedoch, Übergeben von Argumenten durch Bezugnahme erfordert auch sorgfältige Liebe zum Detail. Unerfahrene Programmierer können Fehler machen, z.

Betrachten Sie den folgenden Code, der beide demonstriert Argumentenübergangsmethoden:

#enthalten
Verwenden von Namespace STD;
void PassByValue (int x)
x = 5;
Cout << "Inside PassByValue: " << x << endl;

void passbyReference (int & x)
x = 5;
Cout << "Inside PassByReference: " << x << endl;

int main ()
int num1 = 2, num2 = 2;
Cout << "Before function calls: num1= " << num1 << " num2= " << num2 << endl;
PassByValue (Num1);
PassByReference (Num2);
Cout << "After function calls: num1= " << num1 << " num2= " << num2 << endl;
Rückkehr 0;

Im obigen Code die erste Funktion, PassByValue, erhält ein ganzzahliges Argument nach Wert. Innerhalb der Funktion wird eine neue Ganzzahlvariable erstellt und den Wert 5 zugewiesen. Die ursprüngliche Ganzzahl bleibt unmodifiziert. Die zweite Funktion, PassByReference, erhält ein ganzzahliges Argument durch Referenz. In diesem Fall manipuliert die Funktion die ursprüngliche Variable direkt.

Ausgang

Wie erwartet gibt der erste Anruf 5 aus, hat jedoch keinen Einfluss auf die ursprüngliche Variable. Im Gegensatz dazu ändert der zweite Anruf den Wert von Num2 auf 5, der die Ausgabe der endgültigen Anweisung beeinflusst.

Nach Wert bestehen vs. Durch Referenz passieren

1: Weg, um eine Funktion aufzurufen

Ein Unterschied zwischen nach Wert bestehen Und Vorbeigehen von Referenz ist, wie die Funktion genannt wird. Wenn nach Wert bestehen, Der Funktionsaufruf muss den Wert der Variablen enthalten, z. B. "Berechnen (a, b)". Wenn Vorbeigehen von Referenz, Der Funktionsaufruf muss die Speicheradresse der Variablen enthalten, die durch ein Verstärker und Zeichen symbolisiert wird, z. B. "Berechnen (& a, & b)".

2: Datentypen

Allgemein, nach Wert bestehen ist am besten geeignet, wenn Sie mit kleinen oder einfachen Datentypen arbeiten oder wenn die Funktion nicht die ursprüngliche Variable ändern soll. Vorbeigehen von Referenz ist für große oder komplexe Datentypen besser geeignet oder wenn die Funktion den Wert der ursprünglichen Variablen ändern soll.

Abschluss

Wenn Parameter sind nach Wert bestanden Zu einer Funktion wird eine Kopie der Variablen erstellt und geliefert. Von Vorbeigehen von Referenz, Die ursprüngliche Variable wird an die Funktion gesendet. In c++, Argumente nach Wert oder Referenz übergeben ist ein grundlegendes Konzept. Die Auswahl des richtigen Ansatzes hängt von den spezifischen Umständen ab und sollte sorgfältig bewertet werden. Die Vorteile der Verwendung der Referenz Der Ansatz kann trotz der Versuchung, die einfacheren zu verwenden, zu effektiverem Code führen nach Wert bestehen Methode.