Thema: Delphi TObjectList<> - Frage

Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: TObjectList<> - Frage

  Alt 15. Apr 2017, 21:57
Was passiert eigentlich wenn ich Felder in der abgeleiteten Klasse wiederhole?
Die Felder werden verdeckt. Wenn du also z.b. eine Instanz von TErbe erstellst und dann Var1 den Wert 42 zuweist, ist TBasis.Var1 immer noch 0. Da dies eine ziemlich häufige Fehlerquelle ist, würde ich dir davon definitiv abraten (macht auch wirklich selten Sinn). Wenn du die Felder in TErbe einfach weglässt, kannst du ja trotzdem auf die vererbten Felder aus TBasis zugreifen, auch wenn deine Instanz vom Typ TErbe ist.
Delphi-Quellcode:
var
  T1: TBaseClass;
  T2: TClass2;
begin
  ..
  // Kompiliert
  T1.CommonTest;
  // Kompiliert auch
  T2.CommonTest;
  T2.OnlyForClass2;
  ..
Bezüglich deines Beispiels würde ich dir btw. auf jeden Fall raten nicht direkt von TObjectList<T> abzuleiten, sondern eine dedizierte Klasse zu erstellen, welche lediglich ein Feld vom Typ TObjectList<T> beinhaltet. So wie in meinem Beispiel weiter oben.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)

Geändert von Zacherl (15. Apr 2017 um 22:03 Uhr)
  Mit Zitat antworten Zitat