Je suis en train de programmer un petit moteur 3D et je me heurte à un problème:
Voici mon code:
SceneManager.h :
Code :
- #ifndef _SCENE_MANAGER_H_
- #define _SCENE_MANAGER_H_
- #include "Object.h"
- class SceneManager
- {
- private:
- vector<Object *> m_ObjectsList;
- public:
- void AddObject(Object *Object);
- bool RemoveObject(Object *Object);
- };
- #endif
|
J'aimerais que toutes les instances de la classe Object puissent accéder au SceneManager donc j'ai écrit la classe Object comme ceci:
Object.h :
Code :
- #ifndef _OBJECT_H_
- #define _OBJECT_H_
- #include "SceneManager.h"
- class Object
- {
- private:
- SceneManager *m_SceneManager;
- public:
- Object(SceneManager *SceneManager);
- };
- #endif
|
Le problème, c'est que lorsque je veux compiler ça, Visual C++ me met pleins de petites erreurs de compilation, du genre "SceneManager.h : error C2065: 'Object' : undeclared identifier"
J'ai vu en faisant une recherche dans le forum qu'il suffisait de mettre l'include de SceneManager dans Object.cpp au lieu de le mettre dans Object.h . Mais bon, ça n'a pas l'air très propre, et j'aimerais savoir si il existe une autre solution pour que mes Object accède tous à SceneManager, même en changeant l'architecture de la classe Object ou de la classe SceneManager.