@Messie:
Zitat:
Warum wäre das falsch? Es ist nicht dieselbe Funktion aber warum nicht?
Überlege mal ab wann die Variable Object wirklich ein gültiges Object enthalten kann.
Erst nachdem der Konstruktor erfolgreich zurückkehrt.
Und was würde passieren wenn der Konstruktor eine
Exception auslösst ? Zb. wegen's Speichermangel oä. ?
Dann würden wir sofort im finally end; Block landen. Ist dann die Variable Object wirklich initialisert wurden ?
Nein, in Object würde irgendwas stehen, also vorherige Daten aus dem Stack oder einem CPU Register. Wozu führt dies ?
Das bei Object.Free; wir ein Object freigeben würden das garnicht also solches existent ist. Nur wenn Object durch dummen Zufall nil =$00000000 wäre würde es keine Zugriffsveretzung geben. Dieser Fall tritt mit exakt 1/2^32 Wahrscheinlichkeit ein, also sehr unwahrscheinlich.
Gruß Hagen