J'ai une classe de joueur dans une unité séparée comme suit:Correction de référence circulaire?
TPlayer = class
private
...
FWorld: TWorld;
...
public
...
end;
J'ai aussi une classe mondiale dans une unité séparée comme suit:
TWorld = class
private
...
FPlayer: TPlayer;
...
public
...
end;
Je l'ai fait de cette façon afin que la Le joueur peut obtenir des données du monde via FWorld, et ainsi les autres objets dans le monde peuvent obtenir les données du joueur d'une manière similaire.
Comme vous pouvez le voir, cela donne une référence circulaire (et par conséquent ne fonctionne pas). J'ai lu que cela implique une mauvaise conception de code, mais je ne peux pas penser à un autre meilleur moyen. Quelle pourrait être une meilleure façon de le faire?
À la votre!
Est-ce que cela fonctionne vraiment quand vous ne déclarez pas un pointeur? Je n'ai pas utilisé Pascal depuis toujours. –
Oui, cela fonctionne. Il est possible que je ne travaillerai pas avec Pascal, mais dans ce cas, vous n'auriez pas de cours pour commencer. –
Oui, cela fonctionne. Ne pas foprend que les types de classe * sont * des pointeurs dans Delphi :) –