004
01.10.2004, 14:01 Uhr
ao
(Operator)
|
Die Beispiele aus Lehrbüchern sind meist ziemlich trivial. Im echten Leben geht das meist viel weiter, alles, was im Konstruktor aufgebaut wird, wird im Destruktor wieder abgeräumt. Beispiele:
Wenn dein Programm eine serielle Schnittstelle braucht, dann wirst du z.B. beim Aufbau der Verbindung ein Objekt vom Typ CSerialConnection (oder so ähnlich) anlegen, das die Resource "COM1" zu belegen versucht. Wenn das gelingt und das Programm anschließend beendet wird, muss die Schnittstelle wieder freigegeben werden. Der typische Ort um das zu tun ist der Destruktor.
Oder: Dein Programm speichert seine Einstellungen (Fensterposition und -größe, ....) in der Registry, oder in einem .rc-File oder sonstwo. Beim Programmstart erzeugst du eine Fensterklasse, die in ihrem Konstruktor versucht, die gespeicherten Einstellungen vom letzten Mal zu finden und auszulesen, damit das Fenster an die richtige Stelle gemalt wird. Am Programmende wird das Fenster geschlossen, und der Destruktor der Fensterklasse legt die wichtigen Daten in die Registry.
Oder: Eine Klasse, die ein Dokument bearbeiten kann, muss im Destruktor alle noch ungesicherten Änderungen abspeichern und das Dokument-File ordentlich schließen. |