Zitat von
Christian Seehase:
Das Frag ich mich langsam auch... die
OOP Implementierung ist ja sowas von:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
uses
sysutils;
begin
writeln(TObject.ClassName); // 1.
writeln(TObject(nil).ClassName); // 2.
TObject.Free; // 3.
TObject(nil).Free; // 4.
readln;
end.
So, nun rate mal einer was sich kompilieren läßt, was eine
AV wirft und was funzt:
Code:
1: geht, da Klassenmethode,
2: geht nicht (
AV), weil keine Ahnung warum,
3: geht nicht zu kompilieren,
4: geht weil Delphi's
OOP einfach dumm implementiert ist, denn Free
ist als stinknormal procedure Free; deklariert - das geht
auch mit jeder anderen eigenen Methode, solange man nix vom Objekt
selber will
Nach meiner Meinung, müßte 3. und 4. eigentlich immer rausfliegen, denn wie soll man denn eine Methode eines Objektes aufrufen, das garnicht existiert (vom logischen Ansatz her). Geht den so was in anderen Sprachen?!
Thomas