Resource Acquisition Is Initialization

Resource Acquisition Is Initialization

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.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Resource Acquisition Is Initialization — Resource Acquisition Is Initialization, often referred to by the acronym RAII, is a popular design pattern in many object oriented languages like C++, D and Ada. The technique, invented by Bjarne Stroustrupcite book title = The Design and… …   Wikipedia

  • Идиома Resource Acquisition Is Initialization — Получение ресурса есть инициализация (англ. Resource Acquisition Is Initialization (RAII)) шаблон проектирования объектно ориентированного программирования, смысл которого заключается в том, что получение некоторого ресурса совмещается с… …   Википедия

  • Manual memory management — In computer science, manual memory management refers to the usage of manual instructions by the programmer to identify and deallocate unused objects, or garbage. Up until the mid 1990s, the majority of programming languages used in industry… …   Wikipedia

  • STLSoft C++ Libraries — infobox software name = STLSoft C++ Libraries caption = latest release version = 1.9.57 latest release date = release date|2008|10|10 programming language = C/C++ operating system = MS Windows, Unix, partially Cross platform genre = STL extension …   Wikipedia

  • Шаблон проектирования — У этого термина существуют и другие значения, см. Паттерн. В разработке программного обеспечения, шаблон проектирования или паттерн (англ. design pattern) повторимая архитектурная конструкция, представляющая собой решение проблемы… …   Википедия

  • Destructor (computer programming) — In object oriented programming, a destructor (sometimes shortened to dtor) is a method which is automatically invoked when the object is destroyed. Its main purpose is to clean up and to free the resources (which includes closing database… …   Wikipedia

  • Comparison of Java and C++ — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Memory leak — A memory leak, in computer science (or leakage, in this context), occurs when a computer program consumes memory but is unable to release it back to the operating system. In object oriented programming, a memory leak happens when an object is… …   Wikipedia

  • Exception handling syntax — varies between programming languages to accommodate their overall syntax. Some languages don t call the concept exception handling or they may not have direct facilities for it, but they can still provide means for implementing it. Catalogue of… …   Wikipedia

  • Ressourcenbelegung ist Initialisierung — Ressourcenbelegung ist Initialisierung, meist abgekürzt durch RAII, für englisch resource acquisition is initialization, bezeichnet eine in bestimmten Programmiersprachen (wie z. B. C++) verbreitete Programmiertechnik. Dabei wird die Steuerung… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”