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

  FORUM HardWare.fr
  Programmation
  C++

  Classes imbriquées [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Classes imbriquées [résolu]

n°1455155
DarWog
Posté le 11-10-2006 à 00:24:44  profilanswer
 

voila mon problème : je veux définir deux classes dont chacune a un de ses attibuts qui est du type de l'autre :
 

Code :
  1. class A
  2. {
  3. public:
  4.    B* b;
  5. }
  6. class B
  7. {
  8. public:
  9.    A* a;
  10. }

Et évidemment ca plante à la compilation comme il ne connait pas B à la ligne 4.
Ces déclarations sont dans mon class.h qui s'auto include mais ca ne change rien.
 
Comment dois-je faire????


Message édité par DarWog le 15-10-2006 à 12:07:18
mood
Publicité
Posté le 11-10-2006 à 00:24:44  profilanswer
 

n°1455183
Joel F
Real men use unique_ptr
Posté le 11-10-2006 à 09:07:14  profilanswer
 

La solution : les forward declaration :
 

Code :
  1. class B;
  2. class A
  3. {
  4. public:
  5.    B* b;
  6. }
  7. class B
  8. {
  9. public:
  10.    A* a;
  11. }


Message édité par Joel F le 11-10-2006 à 09:07:26
n°1455186
franceso
Posté le 11-10-2006 à 09:09:03  profilanswer
 

Il faut déclarer préalablement l'une des deux classes sans la définir :

Code :
  1. class B;
  2. class A
  3. {
  4. public:
  5.    B* b;
  6. };
  7. class B
  8. {
  9. public:
  10.    A* a;
  11. };


 
PS: fais gaffe aux ';'
 
EDIT: grillaid, évidemment  :(


Message édité par franceso le 11-10-2006 à 09:09:48

---------------
TriScale innov
n°1455188
_darkalt3_
Proctopathe
Posté le 11-10-2006 à 09:20:38  profilanswer
 

Utiliser des fichiers d'entête séparés peut s'avérer judicieux également.

n°1455189
_darkalt3_
Proctopathe
Posté le 11-10-2006 à 09:21:40  profilanswer
 

D'ailleurs on utiliserait plutôt les termes Composition ou Agrégation que Imbrication pour des relations de ce genre entres classes.

n°1457448
DarWog
Posté le 15-10-2006 à 11:57:28  profilanswer
 

merci, ca marche nickel :p


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

  Classes imbriquées [résolu]

 

Sujets relatifs
[VBA excel] Récupérer dans 1 listbox le resultat d'1 AutoFilter!résolu[Batch] [Résolu] Copie de fichiers listés dans un .txt
[RESOLU] tab multidimensionel en paramètre d'une fonction[Résolu] [C#] Création puis ouverture d'un fichier => problème
[Résolu] Enregistrement d'animation[RESOLU] Menu déroulant en HTML
[Résolu] MMORPG en javacontrol d'edition ...
[RESOLU] Header() en php[PHP] [Résolu]Pb apostrophe sous windows et pas sous linux
Plus de sujets relatifs à : Classes imbriquées [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR