Types verschachteln
Übersicht

TritiumBetreff: Types verschachteln |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab hierzu leider noch nichts gefunden, mein Problem also:
Code: [AUSKLAPPEN] Type a
Type b End Type End Type ...funktioniert bei mir nicht, ich bekomme einen Syntaxfehler. Ist eine derartige Verschachtelung in BMax überhaupt möglich? Wenn ja, wie bekomme ich sie hin? Bisher umgehe ich das Problem damit, dass ich Type b "normal" definiere und Private setze. Wenn Type b aber nur von Type a benutzt werden soll ist das meines Erachtens nicht die optimale Lösung. Wär also nett, wenn jemand ne Antwort auf meine Frage hat ![]() |
||
![]() |
Mr.HydeNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vermutlich ist
BlitzMax: [AUSKLAPPEN] Extends
das was du suchst. Beispielcode aus der Doku: BlitzMax: [AUSKLAPPEN] Rem |
||
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Hyde: Ich glaube, er meint das, was er schreibt. Extends ist was anderes und hat ganz andere Anwendungsfälle.
@Tritium: Geht leider nicht. Was seltsam ist, da BMax Funktionen in Funktionen oder Types in Methoden durchaus unterstützt. Allerdings habe ich festgestellt, dass diese manchmal zu seltsamen Fehlern führen, also lass es lieber. ![]() |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Tritium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Mr.Hyde: Das ist es leider nicht, Type b soll ja nicht von Type a erben. Vielleicht mal ein Beispiel:
BlitzMax: [AUSKLAPPEN] Type TPerson Mit verschachtelten Types könnte ich das so schreiben: BlitzMax: [AUSKLAPPEN] Type TPerson Ein besseres Beipiel fällt mir leider grad nicht ein... Im konkreten Fall habe ich eine Spielkarte, die aus einem (Informatik-)Graphen besteht. Jeder Knoten soll zur Wegfindung ein Objekt TDijkstra besitzen. Da diese Klasse nur in den Knoten gebraucht wird wäre es am besten, wenn auch nur der Knoten von der Existenz einer solchen Klasse weiß. Das Problem ist eigentlich eher kosmetischer Natur, aber der Sinn hinter Objektorientierung ist ja u.a., dass auch immer nur das sichtbar ist, was ich auch brauche. [Edit] @FireballFlame: Mh, das ist schade. Naja, danke für die Antwort ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst doch in type a eine instanz von type b als field hinterlegen, dass ist doch das was Du suchst.
Edit: und den type kannst du als private deklarieren. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das würde man ja sowieso machen. Es ist einfach eine Frage der Sauberkeit.
Man könnte ja z.B. auch aus allen Klassen alle Functions herausnehmen und stattdessen global deklarieren; aber wenn man sie mit in die Klassen packt, sieht man sofort, dass sie zu ihnen dazugehören und kann sie als "Klasse.Funktion()" aufrufen. So würde man es mit Klassen in Klassen auch machen, wenn BlitzMax es denn beherrschen würde. Nützlich für sowas wie das TWohnort-Beispiel von Tritium, oder Factory Pattern oder so. |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group