Smart pointer

Smart pointer

Intelligente Zeiger oder Smart Pointers werden in vielen gängigen objektorientierten Programmiersprachen, meistens C++, verwendet. Es sind spezielle Objekte, welche einfache Zeigervariablen einkapseln und mit zusätzlichen Funktionen und Eigenschaften ausstatten. Diese Objekte erweitern also einfache Zeiger (Pointer), statten sie mit mehr Funktionalität aus und lassen sich dennoch wie normale Zeigervariablen benutzen und dereferenzieren.

Inhaltsverzeichnis

Beispiele

Iteratoren

Typische intelligente Zeiger sind die in der C++-Standardbibliothek eingesetzten Iteratoren. Mit Iteratoren können komplexere Datenstrukturen, wie z.B. Bäume oder verkettete Listen, leicht gehandhabt werden und wie normale Zeiger dereferenziert und benutzt werden. Die bekannten Operatoren der Zeiger-Arithmetik werden auch unterstützt und können zum Durchlaufen einer komplexeren Datenstruktur wie gewohnt angewendet werden.

Freigabe dynamischen Speichers

Die C++-Standardbibliothek definiert ebenfalls das Klassentemplate auto_ptr, das einen Zeiger auf dynamischen Speicher verwaltet. Wird das Objekt zerstört, wird auch der Speicher, auf den der Zeiger verweist, freigegeben. Dies hilft, Speicherlecks zu vermeiden.

Referenzzählende Zeiger

Um das versehentliche Löschen von Speicherbereichen zu vermeiden, auf die noch immer von dem einen oder anderen Zeiger verwiesen wird, verwendet man referenzzählende Zeiger. Dazu beinhaltet dieser Typ von intelligenten Zeigern eine Zählervariable, die bei jedem Kopieren des Zeigers inkrementiert wird. Versucht nun ein Programmteil den Speicher freizugeben, auf den der Zeiger verweist, so wird die Zählervariable zunächst dekrementiert. Erst, wenn der Zähler den Wert 0 erreicht, wird der Speicher tatsächlich freigegeben (→ Referenzzählung).

Copy on Write

In einigen Fällen werden mehrere Kopien von Objekten erzeugt, von denen nur einige verändert werden sollen. In solchen Fällen empfehlen sich Copy-On-Write-Zeiger, die die von ihnen referenzierten Daten erst dann kopieren, wenn schreibend auf sie zugegriffen wird. Bis dahin werden Zeiger auf die Originalobjekte behalten.


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

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

  • Smart pointer — In computer science, a smart pointer is an abstract data type that simulates a pointer while providing additional features, such as automatic garbage collection or bounds checking. These additional features are intended to reduce bugs caused by… …   Wikipedia

  • Smart pointer — Умный указатель (англ. smart pointer) класс (обычно шаблонный), имитирующий интерфейс обычного указателя и добавляющий некую новую функциональность, например проверку границ при доступе или очистку памяти. Содержание 1 Владеющие указатели 1.1… …   Википедия

  • Smart Pointer — Intelligente Zeiger oder Smart Pointers werden in vielen gängigen objektorientierten Programmiersprachen, meistens C++, verwendet. Es sind spezielle Objekte, welche einfache Zeigervariablen einkapseln und mit zusätzlichen Funktionen und… …   Deutsch Wikipedia

  • Pointer (computing) — This article is about the programming data type. For the input interface (for example a computer mouse), see Pointing device. Pointer a pointing to the memory address associated with variable b. Note that in this particular diagram, the computing …   Wikipedia

  • Pointer overflow — Pufferüberläufe (engl. buffer overflow) gehören zu den häufigsten Sicherheitslücken in aktueller Software, die sich u. a. über das Internet ausnutzen lassen können. Im Wesentlichen werden bei einem Pufferüberlauf durch Fehler im Programm zu große …   Deutsch Wikipedia

  • Pointer (Informatik) — Mit Zeiger oder Pointer wird in der Informatik eine spezielle Variable bezeichnet, die auf eine andere Variable oder Funktion verweist. Der referenzierte Speicherbereich enthält entweder Daten (Objekt, Variable) oder Programmcode. Zeiger auf… …   Deutsch Wikipedia

  • Dangling pointer — Dangling pointers and wild pointers in computer programming are pointers that do not point to a valid object of the appropriate type. These are special cases of memory safety violations. Dangling Pointer Dangling pointers arise when an object is… …   Wikipedia

  • Stanford Smart Memories Project — Advances in VLSI technology now permit multiple processors to reside on a single integrated circuit chip, or IC. Such a processing system is known as a chip multiprocessor, or multi core CPU system. Building on this technology, the Stanford Smart …   Wikipedia

  • Maxwell Smart (record producer) — Maxwell Smart Birth name Max Perry Born June 23, 1984 (1984 06 23) (age 27) Origin Brooklyn, New York, United States Genres …   Wikipedia

  • Puntero inteligente — En programación, un puntero inteligente (o smart pointer) es un tipo abstracto de datos que simula el comportamiento de un Puntero (informática) pero añadiendo nuevas características adicionales, como recolector de basura automático y comprobador …   Wikipedia Español

Share the article and excerpts

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