- RAII
-
Ressourcenbelegung ist Initialisierung, meist abgekürzt durch RAII, für engl. resource acquisition is initialization, bezeichnet eine in der Programmiersprache C++ verbreitete Programmiertechnik, die die Steuerung der Belegung und Freigabe von Betriebsmitteln (auch Ressourcen genannt) an den Gültigkeitsbereich von Variablen koppelt.
Dabei wird die Belegung einer Ressource an den Konstruktoraufruf einer Variablen eines benutzerdefinierten Typs gebunden. Die automatische Freigabe wird durch das Verlassen des Gültigkeitsbereichs ausgelöst (am Blockende, bei Ausnahmeauslösung, durch Rückgabe an Aufrufer, usw.). Dabei sorgt der implizite Destruktoraufruf der Variablen für die Wiederfreigabe der Ressource.
Da in C++ Destruktoren von Variablen benutzerdefinierter Typen beim Verlassen des Gültigkeitsbereiches insbesondere auch unter Ausnahmebedingungen automatisch aufgerufen werden, ist RAII ein Schlüsselkonzept zum Schreiben von ausnahmefestem Code.
Ein typischer Einsatzfall für RAII ist die Verwaltung von Datei-Operationen und die Steuerung von Prozess- oder Thread-Sperren in nebenläufigen Programmen.
Auch die Eigentümerschaft von mit new erworbenem Speicher kann in C++ über diese Technik gesteuert werden. In der C++-Standardbibliothek ist zu diesem Zweck beispielsweise auto_ptr definiert.
Wikimedia Foundation.