Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#6

Re: Zuweisung in einer anderen Klasse

  Alt 15. Sep 2009, 12:43
  b := a; <--- Warum ist diese Zuweisung nicht möglich B ist zwar Nachfahre von A, aber da B als Nachfahre unter Umständen neue/zusätzliche Funktionalitäten besitzen kan, ist es nur andersrum möglich

also A := B; geht, da der Typ A alle Funktionen enthält, welche B auch hat.


PS:
Delphi-Quellcode:
B := TClassB.Create;
B.Print > TClassB.Print
A := B;
A.Print > TClassA.Print

A := TClassB.Create;
A.Print > TClassA.Print
hier wäre wohl Virtual+Override angebracht


Delphi-Quellcode:
B := TClassB.Create;
B := A;
hierzu wurde zwar schon etwas gesagt, aber es wurde eventuell nicht klar erwähnt, daß du hiermit ein MemoryLeak erstellst

eine Instanz von TClassB wird erstellt und dann der Instanzvariable B eine andere Instanz zugewiesen, wobei die erstellte Instanz dann frei im Programm rumschwirrt und nicht freigegeben wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat