Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Konstante Referenzen und Unveränderlichkeit | Referenzen
C++ Smart Pointers
course content

Kursinhalt

C++ Smart Pointers

C++ Smart Pointers

1. Einführung in Smart Pointer
2. Einzigartige Zeiger
3. Gemeinsame Zeiger
4. Schwache Zeiger
5. Referenzen
6. Fortgeschrittene Themen

book
Konstante Referenzen und Unveränderlichkeit

Eine konstante Referenz ist eine spezielle Art von Referenz, die nicht verwendet werden kann, um den Wert des referenzierten Objekts zu ändern. Sie bietet ein Maß an Unveränderlichkeit, d.h. sie stellt sicher, dass die Daten innerhalb des Geltungsbereichs der Referenz konstant bleiben. Betrachten wir ein Beispiel für ein besseres Verständnis:

cpp

main

copy
12345678910
int main() { int var = 42; // Const reference to value const int& ref = var; // Uncomment to get compilation error: Cannot modify through a const reference // ref = 10; }

Im obigen Code erstellen wir eine konstante Referenz, indem wir das const Schlüsselwort verwenden. Sobald wir das getan haben, können wir den Wert der referenzierten Variablen (in unserem Fall var) nicht mehr über diese Referenz ändern. Sie können dies testen, indem Sie die Zeile ref = 10; auskommentieren, um einen Kompilierungsfehler zu erhalten.

Vorteile der Unveränderlichkeit

Unveränderlicher Code hat mehrere Vorteile. Er verbessert die Lesbarkeit des Codes und vereinfacht das Debugging; wenn jemand sieht, dass eine Variable als konstant deklariert wurde, kann er sicher sein, dass sich ihr Wert nirgendwo ändern wird. Es verringert auch den Kompilierungsaufwand, da der Compiler sich keine Gedanken über Wertänderungen einer konstanten Referenz machen muss.

Konstante Referenzen als Funktionsparameter

Einer der mächtigsten Anwendungsfälle von konstanten Referenzen ist das Übergeben als Funktionsparameter, um unnötige Kopien zu vermeiden und die Datenintegrität zu gewährleisten. So funktioniert es:

  • Da eine Referenz nur ein Alias der ursprünglichen Variablen ist, ist keine Kopie erforderlich.

  • Da wir die Referenz auf konstant setzen, kann die Funktion den Wert der Referenz nicht ändern. Dies stellt sicher, dass die Funktion nur Lesezugriff auf die Variable erhält.

Da der Zweck der Funktion displayInfo darin besteht, die Nachricht anzuzeigen und nicht zu aktualisieren, verwenden wir eine konstante Referenz, um message zu übergeben. Auf diese Weise kann die Funktion den Wert von message nicht ändern.

Als allgemeine Regel sollten Sie versuchen, konstante Referenzen in allen Funktionen Ihres Codes zu verwenden, es sei denn, Sie müssen die Variable innerhalb der Funktion ändern.

Der folgende Code definiert eine Referenz auf eine Ganzzahlvariable. Ändern Sie den Code, um daraus eine konstante Referenz zu machen.

Der folgende Code definiert eine Referenz auf eine Ganzzahlvariable. Ändern Sie den Code, um daraus eine konstante Referenz zu machen.

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 2
We're sorry to hear that something went wrong. What happened?
some-alt