Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Abstrakte Klasse mit implementierten Methoden

  Alt 3. Aug 2007, 13:21
Zitat von Nogge:
Aso, vergessen zu erwähnen: Man kann den Konstruktor dann zwar nicht mehr mit nem "." auswählen, allerdings akzeptiert der Compiler <Instance>.Create() als ganzes.
Konstruktoren sind in Delphi komische Viecher.
Du kannst sie als Class methods ausführen: Also Deineklasse.Create; aber auch als Instance methods.
Im ersten Fall wird eine neue Instanz angelegt, im zweiten Fall wird der Initialisierungs-Code des Konstruktors auf die Instanz ausgeführt.
Delphi-Quellcode:
type
  TSomeClass = class
  public
    Hiho : Integer;
    constructor Create;
  end;

constructor TSomeClass.Create;
begin
  Hiho := 2;
end;

var
  obj : TSomeClass;
begin
  obj := TSomeClass.Create();
  obj.Hiho := 1;
  obj.Create(); // geht und wiederholt was immer Create mit der Instanz gemacht hat

  Writeln(obj.Hiho);
Einen Konstruktor als Instanzmethode auszuführen ohne die Instanz vorher angelegt zu haben knallt natürlich...
Robert Giesecke
  Mit Zitat antworten Zitat