Bonjour à tous,
c'est mon premier message sur ce forum
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
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 : 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 //--------------------------------------------------------------------------- #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 : 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 //--------------------------------------------------------------------------- #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 : 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 //--------------------------------------------------------------------------- #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 : 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
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
Partager