Einzelnen Beitrag anzeigen

Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

OOP-Verständnisfrage: Destroy zerstört auch Ursprungsobjekt?

  Alt 21. Mär 2018, 23:20
Delphi-Version: 5
Hallo Leute, ich beging einen Fehler, den ich zum Glück fand, dessen Auswirkung ich aber dennoch nicht verstehe.

In meinem Sortierkino verwende ich zwei selbstgebastelte Klassen zur Stackemulation:

TStackEmulator = class...

Diese haben Konstruktoren, Destruktoren und natürlich auch ein paar andere Methoden.

Einen konkreten StackEmulator, also eine Instanz, erzeuge ich natürlich mit:

StackEmulator := TStackEmulator.Create(); (Die Zahl oder Integervariable in der Klammer steht für die Anzahl der vorab gefüllten Speicherplätze als Erstbelegung.)

Später erzeugte ich noch einen zweiten, und zwar fehlerhaft:

StackEmulator2 := StackEmulator.Create(); (Keine Klassenmethode verwendet, das vorangestellte "T" ging beim Tippen unter!).

Funktionierte dennoch zur Zufriedenheit, also beide. Was mich nur wundert(e), ist, daß nach

StackEmulator2.destroy;

kein Zugriff auf den ursprünlichen, ersten, gleichnamigen StackEmulator (als Instanz) möglich war, es "knallte". Wie gesagt, die Ursache war recht schnell gefunden. Doch was nun bei mir als Ratlosigkeit zurückbleibt: Warum reißt die Destroy-Methode des vom ersten Objekt abgeleiteten Objektes auch das erste Objekt mit in den Abgrund?

Schon mal danke für's Lesen und ggf. auch die Antwort(en)!

Gruß Delphi-Laie
  Mit Zitat antworten Zitat