Guten Morgen,
ich frage mich, ob die folgenden Quellcodes intern das gleiche machen:
Delphi-Quellcode:
type
TObj1 = class(TObject)
private
Fs: String;
Fi: Integer;
public
s: String read Fs;
i: Integer read Fi;
end;
.
.
.
procedure MyProc();
var
obj1,obj2: TObj1;
begin
obj1:=TObj1.Create();
obj1.Fs:='abc';
obj1.Fi:=1;
obj2:=TObj1.Create();
//Der Kasus-Knacktus
obj2.Fi:=obj1.Fi;
obj2.Fs:=obj1.Fs;
obj1.Free;
//mache irgend etwas mit obj2
obj2.Free;
end;
//die andere Prozedur
procedure MyProc1();
var
obj1,obj2: TObj1;
begin
obj1:=TObj1.Create();
obj1.Fs:='abc';
obj1.Fi:=1;
obj2:=TObj1.Create();
//Der Kasus-Knacktus
obj2:=obj1;
obj1.Free;
//mache irgend etwas mit obj2
obj2.Free;
end;
Wie man sieht, weise ich einmal jedes private Element des Objektes manuell zu und einmal weise ich das gesamte Objekt direkt zu.
Weist Delphi beim Zuweisen eines Objektes auf ein anderes nur den Objektpointer zu, oder kopiert es alle Variablen in das andere Objekt?
mfG