Modernes C++ in der Praxis – Folge 9
Klug aufgeräumt
Der Smart Pointer gilt als der klügste seiner Art in C++11. Sein Fachgebiet ist die elegante Garbage Collection, manchmal muss aber sein kleiner Bruder Weak Pointer mithelfen.
Der Smart Pointer gilt als der klügste seiner Art in C++11. Sein Fachgebiet ist die elegante Garbage Collection, manchmal muss aber sein kleiner Bruder Weak Pointer mithelfen.
Ein unrühmliches Alleinstellungsmerkmal der Sprache C++ war lange, dass sie belegten Speicher nicht selbst aufräumte, also keine Garbage Collection anbot. Mit C++11 hat sich das geändert, denn der neue Standard bietet explizite, automatische Speicherverwaltung in Form von Reference Counting. Das vermeidet Effekte wie Programmabbrüche infolge doppelt gelöschter, dynamisch allokierter Variablen oder das ungebremste Vergrößern der Anwendung infolge vergessener Speicherbereinigung. Dieser Artikel zeigt, wie der C+×Programmier Reference Counting mit Hilfe der neuen Shared Pointer »std::shared_ptr«
einsetzt.
Der Shared Pointer ist der klügste aller Smart Pointer in C++11. Im Gegensatz zum Unique Pointer »std::unique_ptr«
[1] teilt er sich den Besitz an einer Ressource, aber im Unterschied zum Weak Pointer »std::weak_ptr«
besitzt er die Ressource. Die Idee hinter dem Shared Pointer ist einfach und mächtig zugleich: Jeder Shared Pointer hält zwei Verweise, einen auf die Ressource, die er kapselt, einen anderen auf den Referenzzähler, wie Abbildung 1 zeigt.
Das Linux-Magazin Online veröffentlicht erstmals alle Print-Artikel, die in den vergangenen sechs Jahren im Linux-Magazin erschienen sind. Damit steht Ihnen ein hochwertig bestücktes Archiv bis hin zu den Beiträgen der aktuellen Ausgabe online zur Verfügung. Die über 1200 Artikel sind größtenteils kostenlos zugänglich, nur für Beiträge (als PDF) der jüngsten zehn Linux-Magazine ist eine Gebühr von jeweils 99 Cent fällig.
Umfang: 4 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Alle Rezensionen aus dem Linux-Magazin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...