Einzelnen Beitrag anzeigen

Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#9
  Alt 8. Jan 2003, 20:13
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
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat