AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klassen die sich gegenseitig beinhalten

Ein Thema von Grishnak · begonnen am 21. Sep 2005 · letzter Beitrag vom 21. Sep 2005
Antwort Antwort
Benutzerbild von Grishnak
Grishnak

Registriert seit: 15. Sep 2005
Ort: Neu-Ulm
111 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Klassen die sich gegenseitig beinhalten

  Alt 21. Sep 2005, 11:00
Hallo!

Angenommen ich habe folgende Klassen:

Delphi-Quellcode:
type
  TParent = class
    FChildren: array of TChild;
  end;
und

Delphi-Quellcode:
type
  TChild = class
    FFather: TParent;
    FMother: TParent;
  end;
Muss ich dann beide Definitionen in eine Unit schreiben:

Delphi-Quellcode:
type
  TChild = class;

  TParent = class
    FChildren: array of TChild;
  end;

  TChild = class
    FFather: TParent;
    FMother: TParent;
  end;
Oder gibt es irgendeinen Trick, für jede Klasse eine eigene Unit zu nehmen? Mir ist bekannt, dass ich z.B. FChildren als auch "array of TObject" deklarieren kann und dann mittels "FChildren[i] as TChildren" arbeiten kann, aber das will ich nicht!
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: Klassen die sich gegenseitig beinhalten

  Alt 21. Sep 2005, 11:15
In Delphi musst Du die in eine Unit schreiben. Wenn Du die Klassen unbedingt trennen willst, dann solltest Du eine abstrakte Basisklasse (also eine dritte) für mind. eine der Klassen deklarieren und diese dann in eine dritte Unit packen. Dann kannst Du das Gewünschte erreichen. Stellt sich nur die Frage, ob sich hier der Aufwand lohnt

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz