Modernes C++ in der Praxis – Folge 8
Räumkommando
Die neuen Smart Pointer in C++11 machen den Zugriff auf Ressourcen transparent und räumen hinter sich auf. Dieser Artikel stellt als ersten Vertreter den Unique Pointer vor.
Die neuen Smart Pointer in C++11 machen den Zugriff auf Ressourcen transparent und räumen hinter sich auf. Dieser Artikel stellt als ersten Vertreter den Unique Pointer vor.
"Zahle nicht für das, was du nicht nutzt", betont der C++-Erfinder Bjarne Stroustrup gerne [1]. Daher ist es nur konsequent, dass auch C++11 statt einer impliziten Garbage Collection eine explizite Speicherverwaltung mit den neuen Smart Pointern »unique_ptr«
und »shared_ptr«
anbietet. Dabei implementiert der Unique Pointer den exklusiven Zugriff auf seinen Speicherbereich, der Shared Pointer einen Referenzzähler auf diesen. Ihnen ist gemeinsam, dass sie ihre Ressource automatisch löschen, wenn das Programm sie nicht mehr benötigt. Während dieser Artikel »std::unique_ptr«
vorstellt, wird sich der nächste in der Reihe mit »std::shared_ptr«
beschäftigen.
Die intelligenten Zeiger in C++11 verwalten automatisch den Speicherbereich der ihnen anvertrauten Ressource gemäß RAII-Idiom, die Abkürzung steht für Resource Acquisition Is Initalization. Dieses Idiom kommt in C++ gerne zum Einsatz. Die Idee ist einfach und doch mächtig zugleich: Sie kapselt die Lebenszeit einer zu überwachenden Ressource in einem lokalen Objekt. Im Konstruktor des Objekts wird die Ressource erzeugt und im Destruktor gelöscht.
Da die C++-Laufzeit die Lebenszeit des Objekts, das Objekt wiederum die Lebenszeit der kritischen Ressource verwaltet, wird die Ressource automatisch gelöscht. So überwachen die Smart Pointer die Lebenszeit ihres dynamisch allokierten Speicherbereichs und die Locks »std::lock_guard«
und »std::unique_lock«
[2] die Lebenszeit ihres Mutex, um Deadlocks zu vermeiden.
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...