Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3187 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Références Croisées ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Références Croisées ?

n°1245423
Kyle_Katar​n
Posté le 14-11-2005 à 16:55:53  profilanswer
 

Bonjour dans le cadre d'un petit projet en C++ j'ai un soucis de références croisées :  
 
Une classe A (a.cpp, a.h)
Une classe B (b.cpp, b.h)
 
Mon problème est que A possède un B comme attribut et B possède un A comme attribut.
 
Comment organiser mes .h proprement pour que ça puisse compiler ?
 
Merci d'avance !!!

mood
Publicité
Posté le 14-11-2005 à 16:55:53  profilanswer
 

n°1245436
chrisbk
-
Posté le 14-11-2005 à 17:23:06  profilanswer
 

bin ca peut pas, si A contient B et B contient A alors t'as des objets de taille infini
 
Sinon, c'est c'est des references ou des pointeurs, alors utilise la forward declaration

n°1245527
Kyle_Katar​n
Posté le 14-11-2005 à 19:30:17  profilanswer
 

je me disais bien que ça sentait mauvais... j'espérais une manière élégante de passer outre...

n°1245530
chrisbk
-
Posté le 14-11-2005 à 19:32:02  profilanswer
 

la forward declaration est elegante et permet aussi de reduire les dependances entre fichier

n°1245534
Kyle_Katar​n
Posté le 14-11-2005 à 19:34:59  profilanswer
 

Merci ! Tu pourrais me donner un exemple "d'école" de forward déclaration ? parceque là, le nom me dit rien ...

n°1245538
chrisbk
-
Posté le 14-11-2005 à 19:45:27  profilanswer
 

ah bin c'est tout con

Code :
  1. class prout;
  2. class A
  3. {
  4. prout * machin;
  5. }


 
ca sert juste a dire "y'a un truc qui s'appelle prout et qui est une classe"
 
si dans un H tu utilises juste un pointeur/reference sur un type, alors au lieu de faire un include tu peux te contenter de faire une forward declaration. Ca limite bien les dependances
 
maintenant pour utiliser une methode de prout (ou une var membre) alors le compilo aura besoin de la definition de prout, d'ou include

n°1245540
Kyle_Katar​n
Posté le 14-11-2005 à 19:48:22  profilanswer
 

et comme les include sont fait dans le .cpp dans ce cas ça doit marcher !
 
Merci !!!!

n°1245542
chrisbk
-
Posté le 14-11-2005 à 19:50:03  profilanswer
 

Kyle_Katarn a écrit :

et comme les include sont fait dans le .cpp dans ce cas ça doit marcher !


 
vala [:god]
 

n°1245650
moi23372
Posté le 14-11-2005 à 21:56:14  profilanswer
 

sinon il y a aussi les directives de compilation... moi je préfère cette méthode la, mais ça c'est question de gout

n°1245652
chrisbk
-
Posté le 14-11-2005 à 21:59:16  profilanswer
 

[:pingouino]

mood
Publicité
Posté le 14-11-2005 à 21:59:16  profilanswer
 

n°1245672
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 14-11-2005 à 22:31:02  profilanswer
 

moi23372 a écrit :

sinon il y a aussi les directives de compilation... moi je préfère cette méthode la, mais ça c'est question de gout


putain, mais jamais t'arrètes de dire des conneries toi ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1245677
Kyle_Katar​n
Posté le 14-11-2005 à 22:33:58  profilanswer
 

Argh


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Références Croisées ?

 

Sujets relatifs
Probleme de referencesRéférences croisées en C
[POO]Dépendances croisées?[Visual .Net] Références Vide sous SmartDevice Application
mettre des references dans une tableréférences, utilisation de sendAndLoad dans un constructeur
macro suppression de referencesréférences circulaires, ID ?
Modifier les references d'une mdb par un programme exterieur 
Plus de sujets relatifs à : Références Croisées ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)