Seite 1 von 1
Strukturen, die sich selbst enthalten
Verfasst: 05.03.2021 19:52
von 4Planes
Hallo,
ist es erlaubt, dass eine Struktur sich selbst enthält?
Code: Alles auswählen
Structure struc
...
Map subgroup.struc()
EndStructure
NewMap groups.struc()
Dieser Code funktioniert tadellos. Aber ich wollte vorsichtshalber mal nachfragen, ob ich damit rechnen kann, dass das immer klappt, oder es doch nur zufällig funktioniert.
Re: Strukturen, die sich selbst enthalten
Verfasst: 05.03.2021 21:03
von STARGÅTE
Ja das geht und ist "erlaubt", solange es sich um Unterelemente handelt die nachträglich hinzugefügt werden müssen, also List und Map. Mit Array oder reinen Strukturen geht das nicht, dann nur mit Pointern.
Re: Strukturen, die sich selbst enthalten
Verfasst: 06.03.2021 00:24
von jacdelad
Mündet das nicht in einer Endlosschleife?
Re: Strukturen, die sich selbst enthalten
Verfasst: 06.03.2021 01:28
von STARGÅTE
Nein, du musst ja in jeder Ebene selbst das Element Subgroup() mit AddMapElement(\Subgroup()) hinzufügen.
Beim Initialisieren der Struktur, ist die Map leer und es wird gar nicht erst in struc hineingegangen.
Aber natürlich du kannst "on-the-fly" folgendes machen:
Code: Alles auswählen
Structure struc
Value.i
Map subgroup.struc()
EndStructure
Define groups.struc
groups\subgroup("A")\subgroup("B")\subgroup("C")\subgroup("D")\Value = 1
Debug groups\subgroup("A")\subgroup("B")\subgroup("C")\subgroup("D")\Value
Hier gibst du selbst die Tiefe an, und die Map-Elemente werden Stück für Stück zur Laufzeit hinzugefügt.
Re: Strukturen, die sich selbst enthalten
Verfasst: 06.03.2021 02:38
von jacdelad
Ah ja, stimmt, die Map ist ja leer. Erst wenn ein Element erzeugt wird enthält es wieder die Struktur.