Download C/C++ Skriptum

Transcript
TU-Wien
Institut E114
Prof. DDr. F. Rattay
Headerdatei 1
mit
Klassendeklaration 1
Headerdatei 2
mit
Klassendeklaration 2
Implementierung
der Methoden
aus Klasse 1
Implementierung
der Methoden
aus Klasse 2
Bild: Zusammenspiel von Header- Implementierungs- und Hauptprogrammdatei.
Konstruktoren und Destruktoren
Die runden Klammern am Ende der einzelnen Zeilen, deuten auf die Übergabe von Parametern an eine
Funktion hin und an dieser Stelle wird tatsächlich eine spezielle Funktion aufgerufen. Jedesmal, wenn in
einem C++ Programm ein Objekt einer Klasse erzeugt wird, dann wird genau zu diesem Zeitpunkt eine
spezielle Funktion, der sogenannte "Konstruktor" aufgerufen. Diese Funktion findet sich auch in der
Klassendeklaration wieder und trägt immer exakt den gleichen Namen, wie die Klasse. Ihr Gegenstück ist
der "Destruktor", der genau dann aufgerufen wird, wenn ein Objekt gelöscht wird. In unserem einfachen
Beispiel ist er leer, er bekommt aber größere Bedeutung wenn ein Objekt dynamisch erzeugt werden soll,
es also über "Pointer" angesprochen wird, oder es "Pointer" auf andere Objekte enthält. In diesen Fällen
muß der belegte Speicher "von Hand", beim Löschen des Objekts wieder freigegeben werden. Der
Zusammenhang von Konstruktoren und Destruktoren mit der Erzeugung und Vernichtung von Objekten
ist nächsten Bild dargestellt:
Die Programmiersprachen C und C++
Klassen und Objekte
51