Bonjour à tous,

Je suis bloqué depuis une semaine sur ce programme et j’espère que vous allez pouvoir m'aider.
Je doit réaliser un graphe générique en c++.
Voila comment je fait les choses.

Pour le graphe générique en lui même j'ai trois templates GGraphe, GSommet, GArete déclaré de la manière suivante

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
template <typename TGraphe, typename USommet, typename VArete >
 
class GGraphe{
C'est la première fois que je fait de la généricité en c++ alors déjà est ce que la déclaration des classes ce fait bien comme ça avec des templates ?

Ensuite est ce que dans l'implémentation chaque méthodes doit avoir écrit a nouveau template et les trois types génériques que je vais utiliser de la manière suivante ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
template <typename TGraphe, typename USommet, typename VArete>
    GGraphe<TGraphe, USommet, VArete>::GGraphe() {
    }
Maintenant la partie où je bloque.
On suppose maintenant que un utilisateur souhaite créer des classes qui héritent du graphe générique. Donc l'utilisateur crée trois classes (par exemple) Molecule, Atom, Arete. Pour chaque classes il fait hérité la classe générique correspondante. Pour Molecule : GGraphe.

Je déclare la classe comme ca :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
class Molecule : virtual public GGraphe <Molecule, Atom, Liaison>{
C'est ici que j'ai un problème. Quand je compile il me dit que "Molecule" n'est pas définit, en effet puisqu'il est en train de compiler la classe Molecule donc elle n'existe pas encore. J'ai alors essayer de mettre ca juste avant de déclarer la classe.

Et alors il le compilateur me dit qu'il ne connait pas les méthodes qui sont dans la classe Molecule.

Voila

Est ce que vous pouvez m'apporter votre aide ?
Merci d'avance.