Beispielprogramm: AUTOMETH.CPP
Selbst wenn Du keine Konstruktoren oder überladene Operatoren schreibst, definiert der Compiler einige automatisch. Wirf einen Blick auf die Datei AUTOMETH.CPP, die einige dieser Methoden illustriert und zeigt, warum Du manchmal die automatisch bereitgestellten nicht verwenden kannst, sondern selbst Methoden schreiben mußt, die deren Arbeit übernehmen.
Bevor wir uns dem Programm selbst widmen, wollen wir einige der Regeln angeben, die Autoren von Compilern berücksichtigen müssen. Wir werden sie zuerst überblicksmäßig anführen, um dann ein wenig darauf einzugehen.
Für jede Klasse, die wir einem C++ Programm deklarieren und verwenden, muß es möglich sein, ein Objekt zu "konstruieren", da der Compiler definitionsgemäß einen Konstruktor aufrufen muß, wenn wir ein Objekt definieren. Wenn wir selbst keinen Konstruktor schreiben, erzeugt der Compiler selbst einen, den er beim Konstruieren von Objekten aufrufen kann. Das ist der Standardkonstruktor, den wir ohne es zu wissen, schon in vielen unserer Beispielprogramme verwendet haben. Der Standardkonstruktor initialisiert keine Elementvariablen, setzt aber alle internen Referenzen und ruft den Konstruktor (oder die Konstruktoren) der Basisklasse auf, falls solche existieren. Wir haben die Vererbung noch nicht studiert, werden uns diesem Kapitel aber im nächsten Abschnitt unserer Einführung widmen, dann wirst Du auch über Basisklassen Bescheid wissen. In Zeile 10 deklarieren wir einen Konstruktor, der aufgerufen wird, wenn wir ein Objekt ohne Parameter definieren. In diesem Fall ist der Konstruktor notwendig, da wir eine interne Zeichenkette haben, für die dynamisch Speicher beschafft und die mit einer leeren Zeichenkette initialisiert werden muß. Denk kurz darüber nach, und Du wirst sehen, daß dieser unser Konstruktor viel besser ist als der Standardkonstruktor, der einen initialisierten Zeiger zurücklassen würde.
Dieser Konstruktor wird in Zeile 77 des Beispielprogrammes verwendet.
Copyright © 1997, 1998, 2001-2006 Heinz Tschabitscher - Letzte Änderung 13. Dezember 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, Erklärungen?