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:
j'ai essayé de mettre dans mon cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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|
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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|Si quelqu'un a une idée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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*)'|![]()
merci
Partager