Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#11

Re: Unit-übergreifende Vorwärtsdeklaration von Klassen?

  Alt 23. Apr 2010, 20:27
Zu c) :

Man benötigt nichtmal die virtuellen/abstrakten Methoden,
denn spätestens in der Implementation kann man ja die richtigen Units einbinden
und auch frühestens da würde man auch die Methoden benötigen und könnte dann da via Typecast
TClass2(BaseClass2) {oder}   (BaseClass2 as TClass2) an die richtigen Methoden rankommen.

Delphi-Quellcode:
Unit Common;
interface

type
  TBaseClass1 = class
  end;
  
  TBaseClass2 = class
  end;
  
implementation
end.

Unit Unit1;
interface
uses Common;

type
  TClass1 = class (TBaseClass1)
  private
    FClass2: TBaseClass2;
  public
    procedure Foo1;
  end;
  
implementation
uses Unit2;

end.

////////////////////////////////////////

Unit Unit2;
interface
uses Common;

type
  TClass2 = class (TBaseClass2)
  private
    FClass1: TBaseClass1;
  public
    procedure Foo2;
  end;
  
implementation
uses Unit1;

end.
oder (Unit1 nochmal)
Delphi-Quellcode:
Unit Unit1;
interface
uses Common, Unit2;

type
  TClass1 = class (TBaseClass1)
  private
    FClass2: TBaseClass2; // oder direkt TClass2
  public
    procedure Foo1;
  end;
  
implementation

end.
$2B or not $2B
  Mit Zitat antworten Zitat