Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#12

Re: DLL einbinden, in Klasse oder global

  Alt 11. Nov 2009, 16:12
Zitat von Neutral General:
Ist eine class function nicht sowieso immer statisch?
Nö, es gibt virtuelle Klassenmethoden:
Delphi-Quellcode:
type
  TBaseClass = class of TBase;

  TBase = class
    class procedure Bla; virtual;
  end;

  TDerived = class(TBase)
    class procedure Bla; override;
  end;

implementation

{ TBase }

class procedure TBase.Bla;
begin
  Writeln('TBase.Bla');
end;

{ TDerived }

class procedure TDerived.Bla;
begin
  Writeln('TDerived.Bla');
end;
Delphi-Quellcode:
var
  c: TBaseClass;
begin
  c := TDerived;
  c.Bla;
end;
Dazu wird der implizite Self-Pointer benötigt, den das static entfernt. Das Schlüsselwort wurde für Kompatibilität mit .NET eingeführt, weil das nur die Variante ohne Self beherrscht.
Uli Gerhardt
  Mit Zitat antworten Zitat