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:
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:
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!