Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Best Practices für Referenzen | 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
Best Practices für Referenzen

Namenskonventionen

Wählen Sie aussagekräftige Namen für Ihre Referenzen. Die Namen sollten den Zweck der referenzierten Variablen widerspiegeln. Klare und beschreibende Namen verbessern die Lesbarkeit des Codes und erleichtern es anderen (oder Ihrem zukünftigen Ich), Ihren Code zu verstehen.

cpp

main

copy
123456789101112
int main() { int counter = 42; // Poor naming choice int& r = counter; // Improved naming for better clarity int& counterRef = counter; // Now it's clear that counterRef is a reference to the counter // ... rest of the code }

Im obigen Code ist counterRef ein bedeutungsvoller Name für eine Referenz, während r eine schlechte Namenswahl ist, die vermieden werden sollte.

Gültigkeitsbereich und Lebensdauer

Achten Sie auf den Gültigkeitsbereich und die Lebensdauer Ihrer Referenzen. Als allgemeine Regel gilt: Geben Sie keine Referenzen auf lokale Variablen aus Funktionen zurück, da dies zu undefiniertem Verhalten führt, sobald die Variable den Gültigkeitsbereich verlässt.

cpp

main

copy
12345678910
const int& createReference() { int localVar = 10; // This is dangerous - localVar goes out of scope return localVar; } int main() { const int& result = createReference(); // Undefined behavior }

Im obigen Code geben wir eine Referenz auf localVar, eine lokale Variable, aus der Funktion createReference zurück. Dies führt zu undefiniertem Verhalten, sobald localVar den Gültigkeitsbereich verlässt.

Referenzen in bereichsbasierten for-Schleifen

Verwenden Sie Referenzen in bereichsbasierten for-Schleifen, um direkt mit den Elementen eines Containers zu arbeiten, ohne unnötige Kopien zu erstellen.

cpp

main

copy
12345678910
#include <vector> int main() { std::vector<int> numbers = {1, 2, 3, 4, 5}; // Use references in range-based for loop for (const int& num : numbers) { // Code that works with each element directly } }

Im obigen Code verwenden wir Referenzen, um über einen Vektor zu iterieren. Dies stellt sicher, dass die Vektoreinträge direkt und ohne Kopieren zugegriffen werden.

Warum sollten Sie vermeiden, Referenzen auf lokale Variablen aus Funktionen zurückzugeben?

Warum sollten Sie vermeiden, Referenzen auf lokale Variablen aus Funktionen zurückzugeben?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

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