obj_set_parent

obj_set_parent setzt das Parent-Objekt.

bool = obj_set_parent(obj, parent)

Returnwert

bool ist TRUE (1), wenn die Funktion erfolgreich war.

Parameter

obj

obj ist ein mit obj_create erzeugtes Objekt.

parent

parent ist ein mit obj_create erzeugtes Objekt.

Kommentar

Die obj_set_parent-Funktion kopiert die key-value-Paare von parent nach obj. Beispiel:

o = [. a = 1,
       b = 2
];
o1 = [. c = 3,
        d = 4
];
o1.set_parent(o);

o1 hat nun die Variablen a, b, c, d. Anstatt set_parent kann auch folgende Anweisung geschrieben werden:

o1 = [. __parent__ = o;
        c = 3,
        d = 4
];

Enthält o Zeiger auf Objekte, wird nur der Zeiger kopiert. Bis zur Version UniPlot R2013.2 wurde eine Kopie des Objekts erzeugt.

Außerdem wird durch die Anweisung set_parent oder __parent__ eine Referenz auf das Parent-Objekt in obj gespeichert. obj „erbt“ dadurch alle Methoden von parent.

Wird dann eine Methode obj.name(1,2) aufgerufen, wird, falls die Methode nicht vorhanden ist, die Methode obj.parent.name(1,2) aufgerufen. Dies wird rekursiv mit allen parent-Objekten versucht obj.parent.parent.name(1,2).

History

Version Description
R2013.2 Beim Kopieren der Member-Variablen werden bei Objekten nur Referenzen kopiert und nicht die Objekte. Siehe oben.
4.1.0 New.

id-1665813