Hallo und fröhliche Weihnachten an Alle!
Ich hab mal einige Fragen bezüglich Objekt-Orientiertem Programmieren in LabVIEW 8.5:
1) Gibt es irgendwelche Experten auf dem Gebiet hier im Forum? *G*
2) Ich hab im Sinn in späterer Zukunft vielleicht eine Art Vergleich zwischen LabVIEW und C++ zu erstellen, dazu bräuchte ich allerdings einige Informationen:
Ein Beispiel (ich hoffe, man weiß, was ein Graph im Allgemeinen ist
):
Ich erstelle ein Objekt der Klasse Graph. Dieses Objekt besteht aus einigen Methoden und den Eigenschaften Name (String) und einem Array mit Knoten (Klasse Knoten). Die Klasse Knoten besteht nun ihrerseits aus den Eigenschaften Name (String) und einem Array mit weggehenden Kanten (Klasse Kante). Die Klasse Kante besteht aus einer Eigenschaft Name (String) und einem Endknoten (Klasse Knoten). Soviel zur Aufgabenstellung bzw. dem Design.
Die erste Sache ist schon mal, dass es von Vorteil (-->Laufzeit) wäre, wenn ich in den Listen nicht Objekte sondern Pointer auf die Objekte hätte. Weiters kann man ja nicht einen Member einer Klasse erstellen, dessen Member eben diese Klasse ist (ein Knoten enthält eine Liste von Kanten, die wiederum Endknoten beinhalten). Wie geht das nun sauber bzw. überhaupt in LabVIEW? Ich hab schon einiges mit Referenzen versucht, dass am Anfang sehr gut aussah, jedoch nirgendwo hinführte, da LabVIEW Speicher von Objekten, die in SubViews erstellt wurden, nach deren Laufzeit wieder freigibt. C++ macht das mit Lokalen Variablen (also Variablen in Unterfunktionen) ja auch, man kann jedoch auch explizit Speicher reservieren mit zB: New oder malloc. Natürlich darf man nicht vergessen, den dann auch wieder 'manuell' freizugeben
. Kann man sowas in LabVIEW auch machen? Oder zumindest irgendwo angeben, dass Objekte solange 'leben' sollen, solange es auf Referenzen drauf gibt?
Weiters würde mich auch interessieren, was genau passiert, wenn man die in LabVIEW 8.5 neu hinzugefügte Struktur "In Place Element" verwendet. Die Phrase "In Place" bedeutet meines wissens, dass eine Aktion bzw. ein Algorithmus ausgeführt wird, ohne zusätzlichen Speicher zum Input zu verwenden. Entweder sind Referenzen was anderes, oder dieses In-place ist nicht wirklich das, was es vorgibt (siehe Anhang [LV8.5]).
Ich hoffe, es kann mir jemand weiterhelfen,
Lg und noch einen Guten Rutsch ins neue Jahr,
euer robertow
PS: Wieso gibts eigentlich kein Unterforum OOP mit LV?