I have a class Game
with class EnemyManager
. EnemyManager
deals with spawning of enemies and the logic behind it. The problem is that EnemyManager
needs access to functions and other Game
objects in the game class. I can think of two ways to handle this.
Pass the address of the class object
Game*
usingthis
as one of the arguments in theEnemyManager
.Declare a global pointer to a Game object and set it when initializing the
Game
class. Then extern it into theenemymanager.cpp
.
Which is the more advisable way to do this?
Whenever I encounter situations like this I review the overall design of the related classes. If EnemyManager is a member of a Game object and needs to call things within Game, maybe those functions in Game can be factored out into a separate component. If something you are writing is beginning to feel overly-complex or like a hack it's usually time to do some factoring.