Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Klasse inkl. aller Unterklassen als Parameter übergeben (https://www.delphipraxis.net/167619-klasse-inkl-aller-unterklassen-als-parameter-uebergeben.html)

himitsu 10. Apr 2012 08:53

AW: Klasse inkl. aller Unterklassen als Parameter übergeben
 
Die Kinder sollen die Eltern kennen
und die eltern die Kinder
=
Kreisverkehr


Wobei, wenn man den Kindern einen eigenen vorfahren gönnt, da sie ja scheinbar eh nicht wirklich von ihren Eltern ihrem Verwalter abstemmen, dann braucht man sowas wirklich nicht. (Es sei denn sie müssen ihren Verwalter wirlich mit genauem Typ kennen)

Nico93 10. Apr 2012 14:16

AW: Klasse inkl. aller Unterklassen als Parameter übergeben
 
die Eigenschaften der Unterklassen sind nicht gleich, sondern unterschiedlich.
Beispiel:
Delphi-Quellcode:
TUnterklasse1:
    Vorname: string;
    Nachname: string;
TUnterklasse2:
    Datum: TDateTime;
    Ort: string;
Ich habe leider noch eine kurze Frage:
Wenn ich jetzt eine Instanz der THauptklasse erzeuge und diese Instanz als Parameter an eine Prozedur übergebe, wo muss ich diese dann wieder freigeben (in der Prozedur, in der die Instanz erzeugt wurde oder in der Prozedur, an die die Instanz übergeben wurde)?

implementation 10. Apr 2012 14:19

AW: Klasse inkl. aller Unterklassen als Parameter übergeben
 
Zitat:

Zitat von Nico93 (Beitrag 1160980)
Ich habe leider noch eine kurze Frage:
Wenn ich jetzt eine Instanz der THauptklasse erzeuge und diese Instanz als Parameter an eine Prozedur übergebe, wo muss ich diese dann wieder freigeben (in der Prozedur, in der die Instanz erzeugt wurde oder in der Prozedur, an die die Instanz übergeben wurde)?

Rein vom möglichen her: Egal.
Aber schöner und sinnvoller ist es immer, eine Instanz dort wieder freizugeben, wo sie auch erzeugt wurde.

himitsu 10. Apr 2012 14:42

AW: Klasse inkl. aller Unterklassen als Parameter übergeben
 
Dann lohnt sich Vererbung der Klassen erstmal nicht, da sie ja nichts gemeinsam haben, was sie erben könnten.
Delphi-Quellcode:
type
  TKindklasse1 = class
    ...
  end;

  TKindklasse2 = class
    ...
  end;

  TElternklasse = class
  private
    FKind1: TKindklasse1;
    FKind2: TKindklasse2;
  public
    property Kind1: TKindklasse1 read FKind1;
    property Kind2: TKindklasse2 read FKind2;
  end;
Oder eben so, da sie ja mit der Elternklasse absolut nichts gemeinsam haben.
Aber da die Kindklassen auch nicht wirklich was gemeinsames haben, dann doch eher Ersteres.
Delphi-Quellcode:
type
  TKindklasse = class
  end;

  TKindklasse1 = class(TKindklasse)
    ...
  end;

  TKindklasse2 = class(TKindklasse)
    ...
  end;

  TElternklasse = class
  private
    FKind1: TKindklasse1;
    FKind2: TKindklasse2;
  public
    property Kind1: TKindklasse1 read FKind1;
    property Kind2: TKindklasse2 read FKind2;
  end;
PS: Das würde eine Endlosschleife, wenn man da im Constructor der Elternklasse die Kindklassen erzeugt und dabei die Kindklassen von der Elternklasse erben,
denn dann hätten die Kinder wiederum eigene Kinder, welche ebenfalls Kinder hätten, die Kinder hätten usw.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 Uhr.
Seite 2 von 2     12   

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