Bonjour,
J'ai deux header files (A.h et B.h) qui s'incluent mutuellement.
Cependant, dans A.h, si j'utilise un objet de type B, alors le compilateur m'indique qu'il ne connait pas B.
Merci d'avance.
Bonjour,
J'ai deux header files (A.h et B.h) qui s'incluent mutuellement.
Cependant, dans A.h, si j'utilise un objet de type B, alors le compilateur m'indique qu'il ne connait pas B.
Merci d'avance.
Ben comme tu ne peux pas faire de types imbriqués l'un dans l'autre (ce serait électroniquement impossible), tu es obligé de passer par des pointeurs.
Donc, tu passes par des prototypes de classe:
dans A.h (où est définie la classe A), tu déclares juste la classe B sans la définir:et dans B.h (où est définie B), tu déclares la classe A.
Code : Sélectionner tout - Visualiser dans une fenêtre à part class B;
Et là, si tu faisdans la classe B, tu auras une erreur "use of undefined type" (ou incomplete type) mais si tu fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part A objA;ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part A *pt_a;normalement tu n'auras pas de problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part A& refA;
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Merci ca répond à mon problème.
Mais pour information, maitenant si dans la classe B, je veux utiliser un objet A et non un pointeur. Comment faire ?
Merci.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Merci beaucoup,
Mais comme je disais, si mes méthodes utilisent des objets et non des pointeurs ou des références, comment faire ? (désolé mais je suis débutant, peut être que la réponse est évidente...).
Merci.
Un objet de la classe A qui contient un objet de la classe B qui contient à son tour un A qui contient un B qui contient un A qui contient un B qui ....
C'est de ça dont tu veux parler ?
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
Ben, tu peux toujours avoir la classe B qui contient un objet A, il te suffit alors d'inclure A.h avant (ou dans) B.h...
Par contre, tu ne pourras pas avoir d'objet B dans la classe A (une référence/pointeur, tu peux) sinon ça ferait un objet qui se contient lui-même...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
ok merci.
Partager