Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Teil einer Klasse in einer abgeleiteten Klasse umdefinie

  Alt 18. Okt 2008, 10:46
Zitat von changlee:
// inherited aufrufen und casten was meinst du mit casten?
Naja, da du in der Basisklasse ja sowas machst:
Delphi-Quellcode:
function TBaseList.getitem(index: Integer): TBaseItem;
begin
  Result = fitems[index];
end;
Solltest du in der abgeleiteten Klasse sowas machen:
Delphi-Quellcode:
function TMyList.getitem(index: Integer): TMyItem; // override;
begin
  Result = inherited getitem(index) as TMyItem;
end;

Zitat:
Mir fällt gerade auf: wenn die Listenelemente kein record mehr sind, sondern Klassen, dann kann ich ja im Prinzip gar nichts mehr in der Liste umsortieren (weil Instanz1 := Instanz2 ja nur eine Referenz zuweist, aber keinen Inhalt.)
Natürlich kannst du umsortieren.
Delphi-Quellcode:
temp = getitem(1);
setitem(1, getitem(2));
setitem(2, temp);
Zitat:
Dann widerum müsste ich ja auch in der Funktion GetItem irgendwo jedes einzelne Feld der Klasse abfragen und zuweisen.
result := fItems[i] würde dann ja meines Wissens nicht funktionieren.

Wenn das tatsächlich so ist, dann hätte einen Risen Aufwand und müsste dann auch das umsortieren für jede Liste unterschiedlichen Typs neu implementieren.

Oder liege ich falsch?
Wie gesagt, die grundlegenden Operationen kannst du in der Basisklasse einführen und implementieren, und später musst du dann nur noch die Logik implementieren die bei dem neuen Typ dazugekommen ist
  Mit Zitat antworten Zitat