Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: Hund, Katze und das Klonen von Tieren (OOP-Problem)

  Alt 15. Apr 2008, 15:04
Wenn du nur eine neue Klasse eines Typs erstellen willst, geht das über Metaklassen:
Delphi-Quellcode:
TTierKlasse = class of TTier;
[...]
class function TKlonerei.Clone(Tier: TTier): TTier;
begin
  // ohne Cast würde TObject.Create aufgerufen werden
  result := TTierKlasse(Tier.ClassType).Create;
end;
Wenn du stattdessen eine Instanz wirklich kopieren willst, wird's schon etwas komplizierter. Als Pattern gibt es dazu Assign/AssignTo (leider kein Interface), allerdings ist das Duplizieren von Instanzen umstritten und in seltensten Fällen sinnvoll.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat