Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

C++: Smart Pointer

Warum Smartpointer?

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Bill Weinman berichtet in diesem Video über die Gründe, die zur Entwicklung von Smartpointern geführt haben und verrät, wo deren praktische Einsatzgebiete liegen.
02:32

Transkript

In C++ ist ein Smart Pointer eine Vorlagenklasse, die mit Hilfe von Operatorüberladungen, neben der eigentlichen Funktionalität eines Zeigers, durch zusätzliche Features eine verbesserte Speicherverwaltung und Sicherheit unterstützt. Ein Smart Pointer ist letztlich ein Wrapper um einen reinen C - Standardzeiger. Einerseits soll er die genannten Vorzüge bieten, und andererseits möglichst wie ein Standardzeiger arbeiten. Um dies zu veranschaulichen, betrachten wir diese Funktionssignatur. Ich weiß, dass diese Funktion einen Zeiger zurückgibt. Doch was soll ich mit diesem Zeiger tun, nachdem ich ihn nicht mehr brauche? Ist er statisch, oder wurde er dynamisch zugeordnet? Soll ich den Speicher freigeben, soll ich Delete oder Free aufrufen, darf ich damit rechnen, dass irgendeine andere Funktion den Speicher freigibt? Das bleibt völlig unklar. Genau solche Codierungsprobleme führen zu Speicherlecks. Andererseits weiß ich bei dieser Funktion genau, was zu tun ist. Diese Funktion gibt einen Unique Pointer zurück, darüber sind mir nun sofort einige Dinge bekannt. Ich weiß zum Beispiel, dass er das einzige Exemplar dieses Zeigers ist. Dieser Zeiger kann nicht kopiert werden. Ich weiß, dass ich seine zugeordneten Ressourcen sicher zerstören kann, indem ich Reset auf dem Zeiger aufrufe, und ich weiß, dass ich den Besitz übertragen kann, indem ich ihn verschiebe. Diese Funktion gibt einen Share Pointer zurück. Einen Share Pointer kann ich kopieren, und ich kann diese Kopien löschen, so oft ich will. Die Ressourcen werden automatisch und sicher zerstört, wenn alle Kopien dieses Share Pointers gelöscht werden, oder den Gültigkeitsbereich verlassen. Die Share Pointer-Klasse verwaltet Ressourcen so, dass ich mich nicht darum zu kümmern brauche. Da die Smartpointer-Klassen im Memory-Header definiert werden, müssen Sie Memory einbinden, um diese Klassen verwenden zu können. Smart Pointer wurden in C++11 eingeführt, und es gibt einige Verbesserungen in C++14. Smart Pointer funktionieren in allen modernen Compilern, einschließlich Microsoft Visual C++ und dem LLVM-Compiler "clang", der auf Apple Macs verwendet wird. Es gibt einige Unterschiede in der Implementierung, auf die ich im Verlauf dieses Kurses eingehen werde. Smart Pointer sind einfach zu verwenden und sehr leistungsfähig. Sofern Sie nicht auf ältere Compiler angewiesen sind, die keine Smartpointer unterstützen, gibt es bei den meisten Projekten keinen wirklichen Grund, sie nicht zu verwenden.

C++: Smart Pointer

Lernen Sie die verschiedenen Typen von intelligenten Zeigern kennen, wie sie eingesetzt werden und wie sie funktionieren.

29 min (8 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:13.12.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!