Open Source im professionellen Einsatz

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.

"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.

RAII-Idiom

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.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook