Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
5. Jul 2010
ich sag's ja nicht, daß es immer so ist ... aber bei dem Beispiel isses so, darum dann auch der zweite Durchlauf mit "tja abc abc ", um das Problem besser aufzuzeigen.
auch wenn Stringvariablen für gewöhnlich automatisch initialisiert werden ... man sollte ja eh seine Variablen initialisieren. :stupid:
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
3. Jul 2010
Es hat sich seit Jahrzehten nichts mehr geändert ... da wird sich wohl so schnell auch nicht dran ändern :roll:
Warum haben wir kein -Tag?
(sonst hätte ich es vorhin ja schon geschrieben)
1: "abc "
2: "tja abc abc "
3: zufallswert, da i nicht initialisiert und Result nicht zugewiesen
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
2. Jul 2010
Offiziell steh halt einiges nirgends.
z.B. sieht
function test: String;
intern eigentlich so aus
procedure test(var Result: String);
Bei einem Integer sieht es aber anders aus.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
2. Jul 2010
Das ist bei Delphi eigentlich schon immer so, also daß Klassen-Methoden diesen unsichtbaren Parameter haben.
Irgendwo muß je die Information herkommen, um welche Klasse/Instanz es sich handelt, wenn man eine Methode aufruft.
Der TMethod-Zeiger ist auch um diesen Parameter größer.
(Zeiger auf Methode + die Objektinstanz)
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
2. Jul 2010
oder als statische Klassenmethode:
class procedure ThreadedMethod(Instance: TTest); static; .
Methoden und "nicht-statische" Klassen-Methoden haben eben dieses unsichtbare "Self" mit drin.
> Methode: Self=Objektinstanz
> Klassen-Methode: Self=Klassen-Typ
> statische (static) Klassen-Methode: Self gibt's nicht