Header et inclusion mutuelle

Header et inclusion mutuelle - C++ - Programmation

Marsh Posté le 27-03-2003 à 20:06:23    

Bonsoir à tous
 
J'ai deux fichiers header contenant chacun la déclaration d'une classe.
 
Dans chacune des classes il y a une fonction qui a en parametre un objet du type de la classe qui se trouve dans l'autre fichier.
 
J'ai essayé d'inclure le header ou se trouve la classe dont ma fonction à besoin dans chacun de mes fichiers mais il aime pas trop ...
 
Comment peut on procéder dans ce cas la? (à part tout mettre dans le même fichier...) :sarcastic:  :sarcastic:  :sarcastic:

Reply

Marsh Posté le 27-03-2003 à 20:06:23   

Reply

Marsh Posté le 27-03-2003 à 20:24:28    

a la place de passer l'objet lui-meme tu passes
une reference
et tu fais une declaration forward
class maclasse;
 
LeGreg


---------------
voxel terrain render engine | animation mentor
Reply

Marsh Posté le 27-03-2003 à 20:24:34    

MrLAG a écrit :

Bonsoir à tous
 
J'ai deux fichiers header contenant chacun la déclaration d'une classe.
 
Dans chacune des classes il y a une fonction qui a en parametre un objet du type de la classe qui se trouve dans l'autre fichier.
 
J'ai essayé d'inclure le header ou se trouve la classe dont ma fonction à besoin dans chacun de mes fichiers mais il aime pas trop ...
 
Comment peut on procéder dans ce cas la? (à part tout mettre dans le même fichier...) :sarcastic:  :sarcastic:  :sarcastic:  


 
déclarer tes types :

Code :
  1. class C;
  2. class D;
  3. class C {
  4. ...
  5. D attribute;
  6. }
  7. class D {
  8. ...
  9. C attribute;
  10. }

Reply

Marsh Posté le 27-03-2003 à 20:34:51    

Ok merci je vais essayer  :)

Reply

Marsh Posté le 16-07-2008 à 22:41:47    

Ayant eu le meme probleme, un lien qui explique cela tres bien (rechercher exclusion mutuelle dans le pdf)
http://www.jalix.org/ressources/pr [...] ideC++.pdf
 
Je remonte ce post car c'est la premiere reponse de google aux mots clefs c++ inclusion mutuelle  :D


---------------
Un blog qu'il est bien
Reply

Marsh Posté le 17-07-2008 à 00:38:13    

nraynaud a écrit :


 
déclarer tes types :

Code :
  1. class C;
  2. class D;
  3. class C {
  4. ...
  5. D attribute;
  6. }
  7. class D {
  8. ...
  9. C attribute;
  10. }



 
Tu as tenté de compiler un tel exemple ? Parce que personnellement, j'ai du mal à me représenter la taille d'une seul de ces classes ;)
La déclaration forward va bien tant qu'on manipule des pointeurs ou références, si on veut manipuler le type, il faut nécessairement la déclaration complète

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed