Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi auf sich selbst verweisende Klassen? (https://www.delphipraxis.net/15075-auf-sich-selbst-verweisende-klassen.html)

tableD 21. Jan 2004 15:11


auf sich selbst verweisende Klassen?
 
Ich möchte eine Klasse erstellen die wieder auf sich selbst
verweist. Das geht aber nicht so wie ich das Dachte, kann
mir jmd helfen.,

Delphi-Quellcode:
   type
       TCommandList = class
              command: String;
         execute: Boolean;
         subCommands: Array of PCommandList; // <--??
       end;


   type
       PCommandList = ^TCommmandList;
oder mit einem Pointer aber ich weiß trotzdem nicht
wie das funktionieren soll, da der Pointer erst unterhalb
der Classesdefinition auftaucht, d.h. auch nicht in er Klasse
TCommandList verwendet werden kann.

Kann mir jmd helfen?

[edit=sakura] [delphi]-Tags gesetzt Mfg, sakura[/edit]

Vjay 21. Jan 2004 15:13

Re: auf sich selbst verweisende Klassen?
 
So gehts auf jeden

Delphi-Quellcode:
type
 PCommandList = ^TCommmandList;
 TCommandList = class
  command: String;
  execute: Boolean;
  subCommands: Array of PCommandList; // <--?? 
 end;
Und so glaube ich auch, bin aber nicht sicher.

Delphi-Quellcode:
type
 TCommandList = class;
 TCommandList = class
  command: String;
  execute: Boolean;
  subCommands: Array of TCommandList; // <--?? 
 end;

sakura 21. Jan 2004 15:14

Re: auf sich selbst verweisende Klassen?
 
Du würdest keine Pointer auf Klassen brauchen, da Klassen intern eh Pointer sind ;-)

Code:
   type
       TCommandList = class
              command: String;
         execute: Boolean;
         subCommands: Array of [color=#ff0000]T[/color]CommandList;
       end;
...:cat:...

sakura 21. Jan 2004 15:14

Re: auf sich selbst verweisende Klassen?
 
Die erste Zeile ist nicht falsch, aber auch nicht nötig ;-)

Code:
type
 [s]TCommandList = class;[/s]
 TCommandList = class
  command: String;
  execute: Boolean;
  subCommands: Array of TCommandList; // <--?? 
 end;
...:cat:...

Vjay 21. Jan 2004 15:19

Re: auf sich selbst verweisende Klassen?
 
Naja dachte jetzt dass man die vorher bekannt machen muss, weil das Objekt noch nicht zuende deklariert ist.

Weil verstehe sonst garnicht warum dieser Thread existiert ^^.

sakura 21. Jan 2004 15:21

Re: auf sich selbst verweisende Klassen?
 
Zitat:

Zitat von Vjay
Weil verstehe sonst garnicht warum dieser Thread existiert ^^.

Weil er es unbedingt mit einem Pointer machen will, welcher dann aber in Wirklichkeit (wahrscheinlich unwissentlich) ein Pointer auf einen Pointer auf ein Objekt ist :roll:

...:cat:...

Sanchez 21. Jan 2004 15:37

Re: auf sich selbst verweisende Klassen?
 
Warum sollte man sowas machen wollen?

Das geht doch ins unendliche und gibt einen Stack-Überlauf.

grüße, daniel

sakura 21. Jan 2004 15:44

Re: auf sich selbst verweisende Klassen?
 
Zitat:

Zitat von Sanchez
Warum sollte man sowas machen wollen?

Frage nicht ;-)

Zitat:

Zitat von Sanchez
Das geht doch ins unendliche und gibt einen Stack-Überlauf.

Wieso, es funktioniert, wenn man weiß, was man tut.

...:cat:...

Sanchez 21. Jan 2004 15:47

Re: auf sich selbst verweisende Klassen?
 
Stimmt, aber von von jedem Objekt das subcommands Array größer 0 ist, dann ist vorbei.

Vjay 21. Jan 2004 15:47

Re: auf sich selbst verweisende Klassen?
 
@Sanchez das funktioniert, da das Array ja vorerst keine Objekte enthält.
Die Einträge müssen ja erst created werden und belegen dann ja erst Speicher.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:41 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