Ich habe ein Problem und auch schon die Lösung. Nur verstehe ich nicht ganz warum das ganze ein Problem war.
Es geht um die Ausgabe des Programms im Anhang
Richtig ist
Mit dem "Fehler" ist die Ausgabe aber nurodroid@odroid:~/Temp/oop_murks$ ./project1
Ta.create
Tb.create
Tb.destroy
Ta.destroy
=> die Destructoren werden nicht aufgerufen.odroid@odroid:~/Temp/oop_murks$ ./project1
Ta.create
Tb.create
Einziger Unterschied bei beiden Compile Vorgängen war
Code: Alles auswählen
Type
{ Ta }
Ta = Class
private
public
Constructor create; virtual;
Destructor destroy; override; // So funktionierts
// Destructor destroy; virtual; reintroduce; // So funktionierts nicht
End;
{ tb }
tb = Class(ta)
private
public
Constructor create; override;
Destructor destroy; override;
End;
Meines Erachtens muss free das destroy aufrufen, und das müsste es machen, egal ob ich das so komisch neu definiert habe oder nicht.
Habt ihr eine passende Erklärung ?