Class template et inclusion cyclique
Bonjour,
J'ai un soucie avec mon code: J'ai une class template ( ThirdPersonCamera ) qui est écrite dans un .h.
Cette class possède une fonction addToScene() qui n'utilise pas le template mais qui utilise un objet Scene que je ne peux pas inclure dans le ThirdPersonCamera.h car cela cause une inclusion cyclique du faite que Scene.h inclu deja ThirdPersonCamera.h:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| ThirdPersonCamera.h
class Scene;
template <class T>
class ThirdPersonCamera : public Camera
{
public:
ThirdPersonCamera(std::string name, Scene* scene, T* target)
{
init(name, scene, Vector3(50,10,50), target->getPosition());
mTarget = target;
}
~ThirdPersonCamera()
{
}
void syncRenderablesPhysics(void)
{
}
protected:
void addToScene(Scene* scene)
{
scene->addActor<ThirdPersonCamera>(this);
}
private:
T* mTarget;
}
error: invalid use of incomplete type struct Scene| |
j'ai essayé de mettre dans mon cpp:
Code:
1 2 3 4 5 6 7
| #include "ThirdPersonCamera.h"
#include "Scene.h"
void ThirdPersonCamera::addToScene(Scene* scene)
{
scene->addActor<ThirdPersonCamera>(this);
}
/error: template<class T> class ThirdPersonCamera used without template parameters| |
Code:
1 2 3 4 5 6 7 8 9 10
| #include "ThirdPersonCamera.h"
#include "Scene.h"
template <class T>
void ThirdPersonCamera<T>::addToScene(Scene* scene)
{
scene->addActor<ThirdPersonCamera>(this);
}
]+0x10)||undefined reference to `
ThirdPersonCamera<AnimatedMesh>::addToScene(Scene*)'| |
Si quelqu'un a une idée :)
merci