wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 2

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» Le preprocesseur n'est pas mon ami
Conversation (Résolue) : Le preprocesseur n'est pas mon ami
08-11-2008 23:57:10  Le preprocesseur n'est pas mon ami #1
wxDidier (Membre)
Inscrit le : 14-09-2008
Messages: 24
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,

J'y ai passé la journée, sans résultat....

J'ai voulu "modulariser" un peu mon code en créant des objets.
Malheureusement ces classes ont besoin d'inter-agir entres elles et les #include me posent problèmes.

je tourne en boucle ! pour donner une lointaine idée

Code Cpp:

 
class A
{
  B *ptrB;
};
 
class B
{
A *ptrA;
C *ptrC;
};
 
class C
{
B *ptrB;
};


Alors au début j'ai ajouté les include nécessaires mais maintenant j'ai toujours une class qui n'arrive pas à être définie...

Si quelqu'un voudrait jeter un oeil sur ce code pour me dire si je suis bon pour réécrire différement le bouzin, j'en serait ravi......parce que là, je coince.....

Ce code utilise les libs wxWidgets et ets généré avec CodeBlock

Merci

Dernière modification par wxDidier (09-11-2008 00:08:10)

09-11-2008 00:16:58  Re: Le preprocesseur n'est pas mon ami #2
Gandi (Gourou de la secte)
Lieu: Clermont-Ferrand
Inscrit le : 10-10-2007
Messages: 216
Snippets: 5
Tutoriels: 0
Site web
Hors ligne
Essai ça :

Code Cpp:

class B;
class C;
 
class A
{
  B *ptrB;
};
 
class B
{
A *ptrA;
C *ptrC;
};
 
class C
{
B *ptrB;
};


un conseil apprend le c++ ( http:/cpp.developpez.com/faq/cpp/ ) et quand tu tombes sur des soucis de compréhensions du langage créé toi un petit projet simple qui met en évidence le problème. Sinon va à l'IUT du Puy en Velay en première année Imagerie :p .

Dernière modification par Gandi (09-11-2008 00:20:45)


"Les ordinateurs ne remplaceront jamais les livres. Vous ne pouvez pas vous mettre sur une pile de disquettes pour atteindre le haut de votre armoire" ( Sam Ewing )
09-11-2008 00:21:01  Re: Le preprocesseur n'est pas mon ami #3
wxDidier (Membre)
Inscrit le : 14-09-2008
Messages: 24
Snippets: 0
Tutoriels: 0
Hors ligne
Damned je suis scotché!

ça fonctionne (enfin je n'ai plus d'erreur de compilation).

juste pour ma culture personnelle.... :
Comment tu expliques qu'il n'y ai pas de problème du fait d'un seconde déclaration de la class ?


Merci beaucoup

Dernière modification par wxDidier (09-11-2008 00:21:59)

09-11-2008 00:32:26  Re: Le preprocesseur n'est pas mon ami #4
Gandi (Gourou de la secte)
Lieu: Clermont-Ferrand
Inscrit le : 10-10-2007
Messages: 216
Snippets: 5
Tutoriels: 0
Site web
Hors ligne
tu déclares un type d'objet, après tu déclare son header et dans le cpp tu implémentes son corps. Je pense qu'il faut le voir comme ça.

"Les ordinateurs ne remplaceront jamais les livres. Vous ne pouvez pas vous mettre sur une pile de disquettes pour atteindre le haut de votre armoire" ( Sam Ewing )
09-11-2008 00:41:06  Re: Le preprocesseur n'est pas mon ami #5
wxDidier (Membre)
Inscrit le : 14-09-2008
Messages: 24
Snippets: 0
Tutoriels: 0
Hors ligne
Merci :o)

Ce n'est pas très clair et je n'aurais pas trouvé seul !

J'aurais dû t'en parler au début de journée :)

Merci encore
09-11-2008 00:47:46  Re: Le preprocesseur n'est pas mon ami #6
Gandi (Gourou de la secte)
Lieu: Clermont-Ferrand
Inscrit le : 10-10-2007
Messages: 216
Snippets: 5
Tutoriels: 0
Site web
Hors ligne
Bein si tu préfère tu a déclaré une classe qui s'appelle B par exemple. Ce qui te permet dans les déclaration qui suivent de pouvoir utiliser un objet de type B. Et tu détailleras de quoi est composé l'objet ensuite.
Le compilo fera le lien tout seul.

"Les ordinateurs ne remplaceront jamais les livres. Vous ne pouvez pas vous mettre sur une pile de disquettes pour atteindre le haut de votre armoire" ( Sam Ewing )
09-11-2008 00:53:29  Re: Le preprocesseur n'est pas mon ami #7
wxDidier (Membre)
Inscrit le : 14-09-2008
Messages: 24
Snippets: 0
Tutoriels: 0
Hors ligne
Oui mais la description de l'objet B :
class B
{
blablabla
};

est equivalente à class B ?

Est ce que tape bien sur le même objet ?
Car moi c'est la contenu de blablabla qui m'intéresse
09-11-2008 18:29:33  Re: Le preprocesseur n'est pas mon ami #8
Warzer (Membre)
Inscrit le : 05-10-2007
Messages: 284
Snippets: 4
Tutoriels: 0
Hors ligne
en faites le fait de mettre class B; au début, ça indique aux compilateur que cette classe existe parce que quand tu compile ton fichier il va de haut en bas et s'il trouve des références à un truc qu'il ne connais pas il va s'arrêter du coup comme j'ai dit plus haut tu lui dit ça existe et comme ça quand il tombera dessus il passera en ce disant tien l'autre mas dit que ça existe et je le finirait plus tard.
En gros c'est ça ^^
10-11-2008 11:03:02  Re: Le preprocesseur n'est pas mon ami #9
wxDidier (Membre)
Inscrit le : 14-09-2008
Messages: 24
Snippets: 0
Tutoriels: 0
Hors ligne
Merci pour toutes ces precisions !
Effectivement ça m'a enlevé une epines du pied.

Merci beaucoup
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» Le preprocesseur n'est pas mon ami