Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#14

Re: TObject kopieren und zuweisen

  Alt 16. Jun 2004, 17:13
Moin!

Zitat von ibp:
Zitat von Muetze1:
Und s.Create ist zwar witzig, aber was sollte das bringen? Eine neue Instanz wird nicht angelegt und die Variablen der Klassen werden auch nicht kopiert...
bei mir schon, es funzt mit s.Create!
Da ich das nicht glauben kann, habe ich das selber mach nachgeschrieben...

Also:

Code:
p := s.Create
ruft nochmal direkt den Constructor der Klasse auf - besser: von der Instanz von s. Da s als Instanz schon vorhanden ist, ergo die Klasse schon angelegt ist, gibt der Constructor die Instanzenadresse von s zurück. Mit anderen Worten der obige Konstrukt ist das gleiche wie p := s; - mit anderen Worten s.Free; geht noch aber p.Free; geht in die Hose (ungültige Zeiger Op). Du instanziierst nix, sondern du bekommst die Klasse s zurückgeliefert, ergo keine 2. Instanz und keine Kopie der Klasse...

Mein TestProgramm ist im Anhang....

MfG
Muetze1
Angehängte Dateien
Dateityp: dpr project29.dpr (756 Bytes, 10x aufgerufen)
  Mit Zitat antworten Zitat