Constructor

Constructor

Als Konstruktoren und Destruktoren werden in der Programmierung spezielle Prozeduren bezeichnet, die beim Erzeugen und Zerstören von Objekten oder Variablen aufgerufen werden. Konstruktoren bringen die Objekte in einen definierten Anfangszustand.

Der Konstruktor (im Englischen auch mit ctor abgekürzt) wird bei der Erzeugung der Variablen aufgerufen. Das Versetzen in den Anfangszustand wird auch als Initialisierung bezeichnet. Dabei besteht in der Regel die Möglichkeit, unterschiedliche Initialisierungsvarianten mittels der Aufrufparameter des Konstruktors auszuwählen. Im Konstruktor können auch Vorbedingungen (siehe Design by Contract) geprüft werden, um sicherzustellen, dass bei der Erstellung die so genannte Invariante erfüllt wird.

Der Destruktor (im Englischen auch mit dtor abgekürzt) wird dagegen bei der Zerstörung der Variablen aufgerufen, und erledigt ggf. Aufräumarbeiten.

Durch Konstruktoren und Destruktoren bleibt der Anschein der Atomarität der Erstellung bzw. des Abbaus gewahrt, während am Punkt der Deklaration die Möglichkeit gegeben wird, die Regeln zur Erstellung und Auflösung von Variablen des betreffenden Typs auszuformulieren.

Typische Anwendungsfälle für Konstruktoren und Destruktoren sind die Belegung und Wiederfreigabe von Systemressourcen, so etwa Netzwerkverbindungen. In manchen Programmiersprachen können Konstruktoren und Destruktoren auch dazu verwendet werden, um für die Variable erforderlichen Speicherplatz anzufordern (im Konstruktor) oder wieder freizugeben (im Destruktor).

Konstruktoren und Destruktoren finden auch bei der objektorientierten Programmierung häufige Anwendung.

Programmiersprachen wie C++ garantieren die Ausführung von Destruktoren, wann immer der Gültigkeitsbereich der Variablen verlassen wird (siehe RAII). Deshalb werden mitunter Konstruktoren und Destruktoren eingesetzt, deren einziger Zweck die Sicherstellung korrekter Ressourcenbilanz im gegebenen Kontext ist, in C++ beispielsweise bei der Template-Klasse auto_ptr.

Programmiersprachen wie Java oder Python und die Entwicklungsplattform .NET verwenden das zu Destruktoren alternative Konzept der Finalisierung, bei der Aufräumarbeiten nicht zum frühest möglichen Zeitpunkt, sondern erst mit dem nächsten Lauf der automatischen Speicherbereinigung (engl. garbage collection) durchgeführt wird. Die Prozedur, die dies erledigt, nennt sich Finalisierungsroutine oder Finalisierer. Finalisierer haben im Vergleich mit Destruktoren einige Einschränkungen. So dürfen z. B. Finalisierer im Allgemeinen nicht auf andere Objekte verweisen, da es sein kann, dass diese bereits abgebaut wurden.

Konstruktortypen

Standardkonstruktor (englisch default constructor oder nullary constructor): leere Parameterliste.

Object()

Kopierkonstruktor (englisch copy constructor): nimmt einen eigenen Objekttyp als Parameter entgegen und erstellt eine Kopie daraus (vergleiche: flache Kopie vs. tiefe Kopie)

Object( Object object )

forwarding constructor oder (als Konstrukt) constructor forwarding: gibt die Parameter an einen anderen Konstruktor weiter und verwendet optional Standardwerte für die fehlenden Parameter. Dies ist insbesondere für Programmiersprachen relevant, die keine Standardwerte unterstützen (z. B. Java, C#). Dieses Konstrukt ist zu unterscheiden von einer Initialisierungsliste, in der wirklich Werte gesetzt werden, während der forwarding constructor nur Werte weitergibt.

Object( int value1 ) : this( value, 0 )

Siehe auch


Wikimedia Foundation.

Игры ⚽ Нужен реферат?

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

  • constructor — CONSTRÚCTOR, OÁRE, constructori, oare, s.m. şi f. (Adesea adjectival) Persoană cu pregătirea tehnică necesară care participă la proiectarea sau la executarea (executa) unei lucrări de construcţie. – Din fr. constructeur, lat. constructor. Trimis… …   Dicționar Român

  • Constructor — may refer to: Constructor (object oriented programming), object organizing method Constructor (video game), a 1997 PC game by Acclaim, the prequel of Constructor: Street Wars Constructors (Formula One), person or group who builds the chassis of a …   Wikipedia

  • Constructor — puede referirse a: Constructor, uno de los agentes de la edificación contemplado por la Ley de Ordenación de la Edificación de España. Véanse también: construcción, arquitecto, ingeniero de edificación, arquitecto técnico, aparejador, maestro de… …   Wikipedia Español

  • Constructor — Éditeur Acclaim Développeur System 3 Date de sortie 1997 Genre Stratégie en temps réel Plate forme PlayStation, Windows …   Wikipédia en Français

  • Constructor — Разработчик System 3 Издатель Acclaim Дата выпуска …   Википедия

  • Constructor — Con*struct or, n. [Cf. LL. constructor.] A constructer. [1913 Webster] …   The Collaborative International Dictionary of English

  • constructor — constructor, ra (Del lat. constructor, ōris). adj. Que construye. U. t. c. s.) …   Diccionario de la lengua española

  • constructor — index architect, contractor, materialman Burton s Legal Thesaurus. William C. Burton. 2006 …   Law dictionary

  • constructor — constructor, ra adjetivo 1. Que construye: empresa constructora. La patronal constructora ha decidido no aceptar las propuestas de los sindicatos. sustantivo masculino,f. 1. Persona que se dedica por profesión a la construcción: Los constructores …   Diccionario Salamanca de la Lengua Española

  • constructor — ► adjetivo/ sustantivo 1 OFICIOS Y PROFESIONES Que construye: ■ ha visitado la obra el constructor. ► sustantivo femenino 2 CONSTRUCCIÓN Grupo o sociedad que fabrica determinadas obras de albañilería o edificios. * * * constructor, a adj. y n. Se …   Enciclopedia Universal

Share the article and excerpts

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