Bonsoir,
J'ai un petit problème que j'ai résolu de manière peu élégante. J'aimerai savoir si c'est la meilleure façon de faire.
J'ai une classe A qui contient en tant que membre un vecteur de la classe B. Jusque là pas de soucis.
Dans la classe B j'ai un membre qui contient un vecteur de la classe A. Et là est mon problème.
Le code suivant ne marche pas. Sous VC++Express2010 j’obtiens
error C2065: 'ClasseA'*: identificateur non déclaré
error C2065: 'ClasseB'*: identificateur non déclaré
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #pragma once #include "ClasseB.h" #include <vector> using namespace std; class ClasseA { public: ClasseA(void); ~ClasseA(void); vector<ClasseB> mesClasseB; };Par contre je lève le problème en déclarant chaque classe ami l'une de l'autre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #pragma once #include "ClasseA.h" #include <vector> using namespace std; class ClasseB { public: ClasseB(void); ~ClasseB(void); vector<ClasseA> mesClasseA; };
Cependant, comme dit plus haut je ne trouve pas ça élégant. Et je n'ai pas forcément besoin que la classe de l'une puisse accéder aux membres de l'autre.
Un conseil?
Merci!
Partager