[DELPHI] TList

0

Piszę program dla sędziów szachowych i nurtuje mnie pewien problem. Otóż zadeklarowałem klasę TPartia, która opisuje pojedynczą partię rozegraną przez dwóch zawodników. Wszystkie obiekty-partie przechowywane są na liście. Kwestia sporna to sam sposób przechowywania partii. Mam dwa pomysły. Pierwszy zakłada, że jest jedna lista wszystkich partii. Drugi opiera się na założeniu, że dla każdego zawodnika tworzę jego własną listę zawierającą tylko partie rozegrane przez niego samego.

Pytanie . Jaka będzie różnica w zajmowanej pamięci w obydwu powyższych przypadkach? Jeśli użyję drugiego sposobu (odzielne listy partii dla każdego zawodnika) to każda partia będzie zapisana dwukrotnie - u każdego z zawodników, którzy ją rozegrali. Ale właśnie - czy będzie zapisana dwukrotnie w pamięci czy dwukrotnie zostanie wskazane to samo miejsce w pamięci??? Innymi słowy czy TList przechowuje "całe obiekty" czy tylko wskazania adresów miejsc w pamięci, w których przechowywane są obiekty???

Pozdrawiam wszystkich forumowiczów :)</b>

0

TList to jest klasa, czyli zmienna zadeklarowana jako var x:TList jest wskaźnikiem.
Jeśli mamy:

var x,y:TList
begin
 x:=TLista.Create;
 y:=x;
end;

To x i y odnoszą sie do tej samej (jednej) listy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1