Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Understanding Class Defination

  Alt 12. Feb 2015, 11:44
Und das mit dem Self in der Klassenmethode ist auch gut so, denn dadurch geht das hier:
Delphi-Quellcode:
program dp_183894;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils;

type
  TFoo = class
  public
    class function Construct: TFoo;
  end;

  TBar = class( TFoo )

  end;

{ TFoo }

class function TFoo.Construct: TFoo;
begin
  Result := Self.Create;
end;

procedure Test;
var
  LFoo: TFoo;
begin
  LFoo := TBar.Construct;
  try
    Writeln( LFoo.ClassName );
  finally
    LFoo.Free;
  end;
end;

begin
  try
    Test;
  except
    on E: Exception do
      Writeln( E.ClassName, ': ', E.Message );
  end;
  ReadLn;

end.
TBar.Construct ruft die geerbte Klassenmethode von TFoo auf, da aber dort mit Self.Create die Instanz erzeugt wird, bekommen wir auch tatsächlich eine TBar Instanz zurück
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat