Bonjour à tous,
c'est mon premier message sur ce forum :yaisse2:
Alors je travaille avec C++ builder 2006 (sous windows donc...) et j'ai quelques petits soucis.
Le projet comporte environ 50 classes (ben oui c'est un gros truc) et j'ai plein de liens entre les classes, héritage, association, composition ... En bref, rien d'extraordinaire.
Pour que les en-têtes de fichiers ne soient pas surchargée j'ai décidé de créer un .h qui effectue toutes les inclusions et jusque là ça marche :D
Mais j'ai un soucis au niveau des héritage, j'ai une classe TSouris_seg qui hérite d'une classe TEvenement_seg mais le compilateur dit qu'il ne trouve pas le type, alors qu'il le trouve en tant qu'attribues d'une autre classe...
Donc voici ma classe TSouris_seg:
le cpp de cette classe :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 //--------------------------------------------------------------------------- #ifndef TSourisH #define TSourisH #include "header.h" //--------------------------------------------------------------------------- class TSouris_seg : public TEvenement_seg{ private: ... protected: public: TSouris_seg(); ~TSouris_seg(); void DeclancherEvenement(); /////////////// Tous les accesseurs pour toutes les variables ////////// ... }; #endif
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 //--------------------------------------------------------------------------- #pragma hdrstop #include "TSouris.h" //-------------------------------------------------------------------------- #pragma package(smart_init) TSouris_seg::TSouris_seg(){ } TSouris_seg::~TSouris_seg(){ } ... }
la classe TEvenement_seg qui est abstraite:
Y a rien d'extraordinaire dans le CPP...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 //--------------------------------------------------------------------------- #ifndef TEvenementH #define TEvenementH #include "header.h" //--------------------------------------------------------------------------- class TEvenement_seg { private: TProjet_seg* projet; protected: public: TProjet_seg* getProjet(); void setProjet(TProjet_seg* newProjet); }; #endif
Et maintenant le header.h qui doit faire toutes mes inclusions:
Et l'erreur du compilateur est: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
34
35
36
37
38 //Ficher d'inclusion de toutes les bibliothèques /* Ceci est dûe au parcours des librairies dans le .H */ #ifndef HEADER_H #define HEADER_H //Bibliothèques C++ #include <fstream.h> #include <string.h> //Bibliothèque externe #include "atDiagram.hpp" ////////Liste de tous les types class TProjet_seg; class TEvenement_seg; ... class TSouris_seg; .................. //Bibliothèques du projet #include "TProjet.h" ......... #include "TEvenement.h" #include "TSouris.h" #include "TClavier.h" ..... #endif
[C++ Erreur] TSouris.h(10): E2029 'TEvenement_seg' doit être une classe ou une structure précédemment définie
Voila, j'espère que j'ai été claire sur mon problème, est-ce que quelqu'un peut m'aider?
Je vous remercie d'avance prendre un peu de votre temps pour vous penchez sur mon problème