Héritage et Architecture d'un projet.
Bonjour,
Je suis débutant en C++ et je suis confronté à quelques problèmes / questions :
Je m'entraine en travaillant sur un projet de jeu-vidéo et son architecture.
Après avoir réfléchis à pas mal de chose, je passe à la pratique, voici donc l'architecture retenu ( Je me suis aidé du tutoriel sur l'architecture d'un jeu-vidéo et de quelques projets trouvés sur internet ) :
http://images2.hiboox.com/vignettes/4007/uqtzwr3m.jpg
Premier problème :
Si je souhaite crée un objet de type bloc j'obtient l'erreur :
Citation:
error: field `bloc' has incomplete type
J'ai conclu donc que le compilo n'aime pas la façon avec laquelle j'inclus mes fichiers :
Object.hpp
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
|
/* ---------------------------------------------------------------------
(c) Hybrix 2007
The standard object.
--------------------------------------------------------------------- */
#ifndef H_OBJECT
#define H_OBJECT
#include <iostream>
#include "../math/Vector.hpp" // For physic engine
class Bloc;
class Object
{
public:
// Constructor / Destructor.
Object();
~Object();
private:
Bloc bloc;
};
#endif |
Et la classe qui en dérive :
Bloc.hpp
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
|
/* ---------------------------------------------------------------------
(c) Hybrix 2007
The standard object.
--------------------------------------------------------------------- */
#ifndef H_BLOC
#define H_BLOC
#include <iostream>
#include "../Object.hpp"
class Bloc : public Object
{
public:
// Constructor / Destructor.
Bloc();
~Bloc();
// Move or apply physic on the bloc.
Vector m_vector;
};
#endif |
J'ai testé différentes façon pour éviter l'erreur, mais aucune ne fonctionnes.
La classe "Objects" me permet à la base de "rassembler"tous les objets ( la classe n'est pas complète, je fait seulement les bases pour le moment ).
Second problème :
Je vous en fait part dès que le premier sera résolu :) .
Merci d'avoir pris le temps de me lire.
Hybrix.