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