Einzelnen Beitrag anzeigen

Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Klassendeklaration: Beidseitige Referenz

  Alt 2. Jan 2010, 15:32
Hallo,

bin ja noch rel. neu bei der OOP. Nun stehe ich vor einem kleinen Problem.

Ich habe festgestellt, dass sich Klassen durch eine spezielle Hierarchie kennen. Soll heißen, dass erst TKlasse1 oben definiert sein muss, bevor ich diese unten in TKlasse2 nutzen kann.

Was ist jetzt aber, wenn ich zwei Klassen habe, die sich gegenseitig brauchen und das eine vom anderen vererbt wird. Hier mal ein Beispiel

Delphi-Quellcode:
TKlasse1 = class(TDatabase)
private
  FdbID: Integer;
  FKlassen2Objekte: TObjectList;
  procedure setdbID(Value: Integer);
public
  {* Overrides *}
  constructor Create; override;
  destructor Destroy; override;

  {* Properties *}
  property AddKlassen2Objekt: TKlasse2 write ... //<-- Hier kennt KLasse1 die Klasse2 nicht
end;

TKlasse2 = class(TKlasse1)
private
  FdbID: Integer;
public
  {* Overrides *}
  //constructor Create; override;
  //destructor Destroy; override;

  {* Properties *}
  ...
end;
Also, hier wird Klasse2 von Klasse1 abgeleitet und Klasse1 hat zur Verwaltung mehrerer KLasse2-Objekten eine ObjectList, die nur Klasse2-Objekte annehmen soll. Sieht ganz nach einem Design-Fehler aus, oder?

Vielen Dank im Voraus
  Mit Zitat antworten Zitat