#include bidirectionnel cause des problèmes
Bonjour,
Je veux implémenter le patron "Visiteur" afin de passer au travers de mon arbres.
Deux classes sont présentes: Visitor et Node. Voici leur contenu (seulement les headers):
Visitor:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
#ifndef VISITOR_H_
#define VISITOR_H_
#include "Scene/Node.h"
class Visitor
{
public:
Visitor();
virtual ~Visitor();
virtual void visit(Node * p){};
};
#endif /*VISITOR_H_*/ |
Node:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#ifndef NODE_H_
#define NODE_H_
#include "Scene/Visitor.h"
class Node
{
public:
Node();
virtual ~Node();
void addChild(Node * child);
virtual void accept(Visitor * visitor){};
protected:
int size;
Node * childList;
};
#endif /*NODE_H_*/ |
Il semble y avoir un problème du fait que j'inclu (#include) Node.h dans Visitor.h et Visitor.h dans Node.h.
Il me sort comme erreur:
Code:
1 2 3 4 5 6
|
In file included from Scene\/Node.h:4,
from Scene\Node.cpp:1:
./Scene/Visitor.h:11: error: variable or field `visit' declared void
./Scene/Visitor.h:11: error: `visit' declared as a `virtual' field
./Scene/Visitor.h:11: error: expected `;' before '(' token |
Cet erreur ne semble pas vraiment clair, en tout cas, pour moi elle ne l'est pas.
Tout aide serait apprécié, si je ne suis pas assez clair, faite le moi savoir, j'éclaircirai du mieux que je peux.
Merci à l'avance.
Mat