blob: 101531f575c6af82008c1d36baba83dd8cb7891d [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
2create_super()
3**************
4
5
6FUNKTION
7========
8
9 protected void create_super();
10
11
12DEFINIERT IN
13============
14
15 allen Standardobjekten
16
17
18ARGUMENTE
19=========
20
21 keine
22
23
24BESCHREIBUNG
25============
26
27 Diese Funktion wird immer dann aufgerufen, wenn ein Objekt implizit durch
28 ein 'inherit' in einem erbenden Objekte geladen wird.
29 Normalweise muss man dieses so geladene Objekte nicht konfigurieren, weil
30 nur das Programm dieses Objektes fuer die erbenden Objekte interessant
31 ist, nicht seine Daten.
32 Was hier aber z.B. sinnvoll ist, ist das Abschalten des Resets, denn ein
33 Objekt, was nur dazu dient, dass es von anderen geerbt wird, braucht
34 keinen Reset, auch wenn es ein reset() definiert (was in erbenden Objekte
35 benutzt wird).
36 Die create_super() in den Standardobjekten tun momentan genau dieses.
37
38
39RUeCKGABEWERT
40=============
41
42 keiner
43
44
45BEMERKUNGEN
46===========
47
48 Wenn ihr von /std/ erbt, braucht ihr euch in aller Regel um diese
49 Funktion keine Gedanken machen.
50 Ihr koennt diese Funktion aber in Objekten selber definieren, die nur zum
51 Erben gedacht sind. Dies kann sinnvoll ein, wenn ihr nicht von /std/ erbt
52 und ein reset() im Objekt habt oder was machen wollt, was ueber das
53 Abschalten des Resets hinausgeht.
54
55
56BEISPIELE
57=========
58
59 Gegeben sei folgende Vererbungskette:
60 /std/room -> /d/inseln/zesstra/stdraum -> /d/inseln/zesstra/raum
61
62 Wird nun 'raum' geladen und 'stdraum' ist noch nicht geladen, wird der
63 Driver implizit von selbst 'stdraum' laden (weil 'raum' das Programm von
64 'stdraum' braucht). Bei diesem Laden wird das create() in 'stdraum' nicht
65 ausgefuehrt, sondern stattdessen create_super().
66
67
68SIEHE AUCH
69==========
70
71 create(L), reset(L)
72 hook(C), create(H), create_ob(H), create_super(H, reset(H)
73 create(A), reset(A)
74
7522.10.2007, Zesstra