Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#5

Re: array of record; bzw. arrays in OOP

  Alt 20. Feb 2005, 11:49
Zitat von sixarp:
Statt dem Record definierst du dir in OOP eine Klasse mit den Variablen des Records,
und instanzierst das ganze im jeden Array-Element oder verwendest
TList oder TObjectList statt dem Array.
Man nimmt ganz sicher keine TList, wenn es sich auch nur irgendwie vermweiden lässt.
TList beuntzt solchen *piep* als internen Array:
  TPointerList = array[0..MaxListSize - 1] of Pointer; Am praktischsten finde ich immer noch linked Lists, die man hinter einer Collection ""versteckt".

Arrays haben einen Vorteil gegenüber Listen: Random access.
Man kann sehr schnell auf Element[X] zu greifen. Mit einer linked List kann es dir im dümmsten Fall passieren, dass du sie von ganz vorne/hinten bis dort durchlaufen musst (außer man führt den letzten Zugriff als "Cache" mit )

Das war's auch schon mit den Vorteilen von Arrays. Mir fällt dazu einfach nix positives mehr ein.
Von Arrays kann man nicht ableiten. Arrays werden ständig kopiert, wenn sich ihre Größe ändert. eine Element in einem Arrays zu löschen ist verflucht hässlich.

Und was an Records sparsamer sein soll weiß wohl auch keiner. Die Dinger werden bei Zuweisung KOPIERT! Alles was (Size > 10-20Bytes) gehört einfach nicht in einen Record. (Ich persönlich packe gar nichts in solchen Krempel )
Bei Referenzen auf ein Objekt muss nur der Zeiger (4Bytes) kopiert werden.

Aber ich halte mich jetzt lieber zurück.

@maximov ich dachte Referenzen wären 4 Byte.
  Mit Zitat antworten Zitat