Imam klasu TGame i TPawn.
Konstruktor za TPawn izgleda ovako:
gde je PTGame = ^TGame,
a myGame: PTGame polje klase TPawn.
TGame ima polje board tipa PTBoard = ^TBoard, kao i pawn: PTPawn = ^TPawn.
Pri pozivanju funkcije myGame.board.funkcija iz neke od metoda klase TPawn, javlja se greska EAccessViolation.
Pre nego sto se poziva TPawn.Create poziva se konstruktor TGame.Create.
Takodje se pre poziva TPawn.Create poziva konstruktor TBoard.Create.
TPawn.Create se poziva iz jedne od metoda TGame ovako
U cemu je greska?
Konstruktor za TPawn izgleda ovako:
Code:
TPawn.Create(game: PTGame);
begin
...
myGame:=game;
...
end;
TPawn.Create(game: PTGame);
begin
...
myGame:=game;
...
end;
gde je PTGame = ^TGame,
a myGame: PTGame polje klase TPawn.
TGame ima polje board tipa PTBoard = ^TBoard, kao i pawn: PTPawn = ^TPawn.
Pri pozivanju funkcije myGame.board.funkcija iz neke od metoda klase TPawn, javlja se greska EAccessViolation.
Pre nego sto se poziva TPawn.Create poziva se konstruktor TGame.Create.
Takodje se pre poziva TPawn.Create poziva konstruktor TBoard.Create.
TPawn.Create se poziva iz jedne od metoda TGame ovako
Code:
procedure TGame.Metoda;
begin
...
new(pawn);
pawn^:=TPawn.Create(@self, i);
...
end;
procedure TGame.Metoda;
begin
...
new(pawn);
pawn^:=TPawn.Create(@self, i);
...
end;
U cemu je greska?
Potpis
Sendvic uvek pada na namazanu stranu!