Classes et includes croisés [Résolu]

coockiesch 2268 Messages postés mercredi 27 novembre 2002Date d'inscription 13 septembre 2013 Dernière intervention - 7 mai 2008 à 18:56 - Dernière réponse : coockiesch 2268 Messages postés mercredi 27 novembre 2002Date d'inscription 13 septembre 2013 Dernière intervention
- 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;
}

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???"
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 7 mai 2008 à 21:32
3
Merci
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;

Merci cs_juju12 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de cs_juju12
coockiesch 2268 Messages postés mercredi 27 novembre 2002Date d'inscription 13 septembre 2013 Dernière intervention - 7 mai 2008 à 21:40
0
Merci
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???"
Commenter la réponse de coockiesch

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.