Jeder Abweichung von dieser Deklaration führt zu einem nicht funktionierenden Destruktor.
Eben das ist ja das, was mich stört. Man kann auch weitere Destruktoren deklarieren, aber die tuns dann nicht so, wie sie sollen.
Ah ok - da müsste der Compiler doch einfach nur auf jede Abweichung von der richtigen Destruktor-Signatur mit einem
Compilerfehler reagieren.
Das Problem von Delphi ist, dass der Destruktor überhaupt einen Namen bekommen hat.
Man hätte das z.B. auch so machen können:
Delphi-Quellcode:
TEineKLasse = class(TBasisKlasse)
...
public
constructor Create;
destructor;
end;
destructor TEineKLasse;
begin
...
inherited;
end;
// und statt Destroy oder Free würden man Objekte so freigeben:
Dispose(einObjekt);