Bonjour,
j'ai un soucis avec une méthode dans mon petit projet, lequel consiste à concevoir un arbre générique. J'ai fouillé sur le forum ainsi que dans la FAQ, mais je n'ai malheureusement pas trouvé de réponse à mon problème qui est, j'en suis certain, vraiment anodin...alors voici le bout de code qui me cause ennui:
j'ai un fichier .h dans lequel se situe la classe Arbre:
Et j'ai un fichier .inl qui contient les définitions des méthodes:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 /** * \file BST.h * \brief Classe définissant un arbre * \author Bert * \version 0.1 * \date juillet 2010 * * Definition de la classe Arbre et de ses méthodes de parcours * */ #ifndef _BST #define _BST #pragma warning( disable : 4290 ) #include <stdexcept> #include <iostream> #include <vector> #include <queue> namespace Arbre_Lab8 { /** * \class Arbre * * \brief classe générique représentant un arbre * * La classe gère un arbre générique. L'implémentation * se fait par chaînage. */ template <typename E> class Arbre { public: ... (je ne mets pas toutes les méthodes, elles ne sont pas problématiques) private: /** * \class Noeud * * \brief classe interne représentant un noeud typique de l'arbre * * La classe représente un noeud typique * pour implémenter un arbre par chaînage. */ class Noeud { public: E data; /*!< La donnée dans l'arbre*/ Noeud *gauche; /*!< Pointeur vers le fils gauche*/ Noeud *droite; /*!< Pointeur vers le fils droit*/ /** * \brief Constructeur de la classe Noeud * * \post un noeud typique est intialisé * */ Noeud( const E&d ): gauche( 0 ), data( d ), droite( 0 ) { } }; // Les membres données Noeud * racine; /*!< La racine de l'arbre*/ ... (même chose ici, il y a d'autre méthodes privées non-problématiques) /** * \brief Construction d'un arbre à partir des tableaux de 2 visites (père et symétrique) * * Fonction récursive auxiliaire pour le constructeur #2 * * \pre Il faut qu'il y ait suffisamment de mémoire * * \post Le sous-arbre construit est retourné * * \exception bad_alloc s'il n'y a pas assez de mémoire */ Noeud * _auxPereSym(E *tabS, int debut, int fin, E **ptr, int &card) throw(std::bad_alloc); }; }//Fin du namespace #include "BST.inl" #endif
Alors, à la compilation (avec Visual studio 8) j'ai le message d'erreur suivant:
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 /** * \file BST.inl * \brief Le code des opérateurs * \author Bert * \version 0.1 * \date juillet 2010 * * Implémentation des méthodes de parcours d'un arbre générique * */ namespace Arbre_Lab8 { ... (autres méthodes non-problématiques) /** * \fn Arbre<E>::Noeud * Arbre<E>::_auxPereSym(E * tab, int debut, int fin, E ** ptr, int &card) throw (std::bad_alloc) * * \param[in] tabS Le tableau contenant le fruit de la visite symétrique * \param[in] debut L'indice de début de tabS * \param[in] fin L'indice de fin de tabS * \param[in] ptr Le tableau contenant le fruit de la visite au père * \param[in] card La cardinalité de tabP * */ template <typename E> Arbre<E>::Noeud * Arbre<E>::_auxPereSym(E * tab, int debut, int fin, E ** ptr, int &card) throw (std::bad_alloc) //<<<<<l'erreur est à cette ligne { Noeud * unNoeud; // ceci est uniquement pour que ça compile... return unNoeud; } }//Fin du namespace
error C2143: erreur de syntaxe*: absence de ';' avant '*'
???
Je n'y comprends rien, quelqu'un a une idée svp?
merci d'avance !
Partager