Wskaźniki z/bez "^"

0

Witam!
W końcu zadam jakieś pytanko :>
Mam taką klasę:

type
  K = ^TKlasa;
  TKlasa = class(TObject)
    zmienna: Integer;
  end;

Tworzę sobie nowy objekt:

var
  Objekt: K;
  P: Pointer;
begin
  New(Objekt);
  {...}

Przypisuje nowy objekt do wskaźnika:

  {...}
  P := Objekt;
  {...}

A teraz chcę odwołać się do zmiennej 'zmienna' i tu pojawia się pytanie (nawet nie jedno): Który ze sposobów jest poprawny? Czym się różnią te zapisy skoro oba działają poprawnie?
Może sposób odwołania się do tej zmiennej nie ma znaczenia, ale chciałbym się upewnić. Thx z góry :-)

  K(P).zmienna  := 123;
  K(P)^.zmienna := 321;

<font color="red">[dopisane]</span>
Mała pomyłka, to nie jest klasa TObject tylko 'packed record'. Reszta bez zmian.

0

Powinieneś użyć drugiej metody.
Delpi jest bardzo przebiegłe i jak widzi odwołanie do pola we wskaźniku od razu działa na nie '^', aby można było dostać się do odpowiedniego pola.
Jednak, aby zachodziła zgodność (i pozostała czytelność) z Pascalem, lepiej jest stosować drugą metodę.

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