classes trop dépendantes

Le
Gregorydupres
Bonsoir,

J'ai un soucis tout bête qui a surement déjà été rencontré (et
résolu). J'ai deux classes dans deux fichiers différents, dans
classe1.h :

#include "classe2.h"

class classe1
{
classe2 *pointeur_classe2;
};

dans l'autre fichier , classe2.h j'ai :

#include "classe1.h"

class classe2
{
classe1 *pointeur_classe1;
};

Bien sûr je schématise, les classes sont en réalité bien plus
fournies. Je voudrais savoir ce qu'il faut modifier pour que ça
compile, j'ai deja essayé avec des #ifndef _CLASSE1_ etc.. ça compile
toujours pas. Merci Beaucoup.

-- Gregory
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Loïc Joly
Le #312395
#include "classe1.h"

class classe2
{
classe1 *pointeur_classe1;
};

Bien sûr je schématise, les classes sont en réalité bien plus
fournies. Je voudrais savoir ce qu'il faut modifier pour que ça
compile, j'ai deja essayé avec des #ifndef _CLASSE1_ etc.. ça compile
toujours pas. Merci Beaucoup.


Il faut les include guards, c'est une première étape. Ensuite, pour
déclarer un pointeur sur classe1, tu n'as pas besoin de connaître toute
la définition de classe1. Il suffit que le compilateur sache que classe1
est une classe. On l'indique à l'aide d'une déclaration de classe1 sans
définition associée :


// #include "classe1.h" // Pas nécessaire ici

class classe1; // Déclaration sans définition

class classe2
{
classe1 *pointeur_classe1;
};

--
Loïc

Gregorydupres
Le #312394
On 3 nov, 01:16, Loïc Joly

#include "classe1.h"

class classe2
{
classe1 *pointeur_classe1;
};

Bien sûr je schématise, les classes sont en réalité bien plus
fournies. Je voudrais savoir ce qu'il faut modifier pour que ça
compile, j'ai deja essayé avec des #ifndef _CLASSE1_ etc.. ça comp ile
toujours pas. Merci Beaucoup.


Il faut les include guards, c'est une première étape. Ensuite, pour
déclarer un pointeur sur classe1, tu n'as pas besoin de connaître tou te
la définition de classe1. Il suffit que le compilateur sache que classe1
est une classe. On l'indique à l'aide d'une déclaration de classe1 sa ns
définition associée :

// #include "classe1.h" // Pas nécessaire ici

class classe1; // Déclaration sans définition

class classe2
{
classe1 *pointeur_classe1;

};

--
Loïc


Ok ça marche merci beaucoup.

-- Gregory


Publicité
Poster une réponse
Anonyme