Salut,

Citation Envoyé par Eusebius Voir le message
Sinon, tu peux déclarer la classe ZoneDonjon ou certaines de ses méthodes comme "friend" de Donjon, mais à mon sens c'est une brèche dans la "sécurité" objet en C++.
Appliquée correctement et avec parcimonie, l'amitié permet, au contraire, d'améliorer la sécurité objet en C++...

Cf la FAQ: l'amitié brise-t-elle l'encapsulation

Citation Envoyé par Aspic Voir le message
Je suis peut être bête mais aucune de ses solutions ne va marcher...
Si par exemple, je le passe en public, comment j'y accède dans ma classe ZoneDonjon, vu qu'il n'y a pas de liens avec la classe Donjon ?
A vrai dire, j'ai un peu de mal à comprendre ton raisonnement...

Si j'ai bien compris, le role de la zone est de gérer tout ou partie d'un monde (typeMonde), et donc, le role de la zoneDonjon et... de gérer spécifiquement tout ou partie d'un "monde donjon", non

Il doit donc y avoir, d'une manière ou d'une autre, une relation entre tes zones (quelles qu'elles soient) et le monde qu'elles doivent gérer

Maintenant, il serait, éventuellement, possible d'envisager l'utilisation d'un DP proche du médiateur: Tes objets de type Zone (ou dérivés) s'adresse à un médiateur qui transmet, quand il le faut, les instructions à l'objet de type Monde (ou dérivé) courent.

Mais, quoi qu'il en soit, tes Zones devront de toutes manières être en relation avec quelque chose