Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Der Bedarf an Smart Pointern | Einführung in Smart Pointer
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
Der Bedarf an Smart Pointern

Manuelle Speicherverwaltung erfordert, dass Entwickler daran denken, den Speicher explizit freizugeben, wenn er nicht mehr benötigt wird. Wie wir im letzten Kapitel gesehen haben, kann die manuelle Freigabe zu Speicherlecks und hängenden Zeigern führen.

Man kann sich die manuelle Speicherverwaltung wie das manuelle Aufräumen nach einer Party vorstellen. Wenn man vergisst aufzuräumen, kann dies im Laufe der Zeit zu einem unordentlichen und chaotischen Raum führen, der für zukünftige Partys ungeeignet ist.

Stellen Sie sich nun vor, Sie hätten ein Team von fleißigen Reinigungskräften, die automatisch das Aufräumen nach der Party übernehmen. Sie sorgen dafür, dass nach der Party nichts zurückbleibt und alles sauber und bereit für das nächste Event ist. Genau das tun Smart Pointer für die Speicherverwaltung in C++.

Einführung in Smart Pointer

Smart Pointer sind Objekte, die die Speicherverwaltung automatisieren, selbst für dynamischen Speicher. Es gibt drei Arten von Smart Pointern:

  • Einzigartige Zeiger: Diese Smart Pointer gewährleisten exklusive Eigentümerschaft des dynamisch zugewiesenen Objekts. Das bedeutet, dass zu jedem Zeitpunkt nur ein einzigartiger Zeiger das Objekt besitzen kann.
  • Geteilte Zeiger: Diese Smart Pointer erlauben mehreren Zeigern, die Eigentümerschaft des gleichen dynamisch zugewiesenen Objekts sicher zu teilen.
  • Schwache Zeiger: Diese Smart Pointer können auf eine Ressource zugreifen, ohne die Eigentümerschaft zu übernehmen.

Die Rolle von Referenzen

Smart Pointer sind ein wertvolles Werkzeug, aber sie sind nicht die einzigen in unserem Arsenal. Referenzen spielen ebenfalls eine entscheidende Rolle im Speichermanagement und bei der Datenmanipulation.

In diesem Beispiel erstellen wir eine Referenz auf die Ganzzahlvariable x. In nachfolgendem Code, wenn wir den Wert von refX ändern, wird der Wert von x automatisch geändert. Ebenso, wenn wir den Wert von x ändern, wird refX ebenfalls aktualisiert.

Merken

Referenzen bieten ein Alias für bestehende Objekte. Alle Änderungen am Alias werden auch am bestehenden Objekt vorgenommen und umgekehrt.

Wir haben kurz die Bedeutung von Smart Pointern und Referenzen im Umgang mit dynamischem Speicher angesprochen. Wir werden diese Konzepte in den nächsten Abschnitten ausführlich erkunden.

Was ist die primäre Herausforderung bei der manuellen Speicherverwaltung?

Was ist die primäre Herausforderung bei der manuellen Speicherverwaltung?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

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