coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 2013
-
7 mai 2008 à 18:56
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 2013
-
7 mai 2008 à 21:40
Bonjour à tous!
Je me casse la tête sur des include croisés...
J'ai une classe Parseur contenant des balises:
class Parseur
{
private:
Balises balises;
}
où
typedef map<string, Balise> Balises;
Et Balise est une classe:
class Balise
{
private:
FoncOscil fonc;
public:
FoncOscil getFonc( );
};
En fait le tout me sert à faire un parseur et constuire un élément depuis les données créées. Une Balise contient son nom, son id et les id des enfants auxquelle elle à droit. Balises est un tableau associatif de Balises.
J'aimerais que chaque balise contienne un pointeur vers une fonction de la classe Parseur:
typedef string ( Parseur::*FoncOscil )( XMLData );
Le problème c'est que balise.h a besoin de parseur.h et vice versa... J'ai des include croisés et plus rien ne fonctionne, c'est le drame :P
Comment faire?
Merci!
La boîte à bouts de codes "On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 7 mai 2008 à 21:32
dans le fichier Balise.h (ou quelque soit son nom) tu ajoutes une déclaration de la classe Parseur; du coup pas besoin d'inclure Parseur.h pour définir la classe Balise :
// fichier Balise.h
class Parseur;
class Balise
{
...
};
// fichier Parseur.h
#include "Balise.h"
class Parseur
{
...
};
si tu es sous compilo microsoft tu peux éventuellement préciser (cf MSDN) :
class __single_inheritance Parseur;
ou
class __multiple_inheritance Parseur;
ou encore
class __virtual_inheritance Parseur;
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 7 mai 2008 à 21:40
Salut!
Merci pour ta réponse! En fait je ne savais pas qu'on pouvait déclarer une classe plusieurs fois. Du coup, j'ai juste ajouté:
class Parseur; dans balise.h et tout est merveilleux! :)
Bonne soirée!
Raf
La boîte à bouts de codes "On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"