Voici mon petit pb : j'aimerai definir une class dans une autre.
Facile si on met tout dans le .h :
Maintenant si on veut separrer les definitions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class A { class B { int m_memb; public: B(int i) : m_memb(i) {} }; B m_b; public: A() {} };
Sa marche tjrs mais si on rajoute le membre B m_b :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class A{ class B; public: A(); }; class A::B { int m_memb; public: B(int i) : m_memb(i) {} };
Le compilo me dit que la class B est indefinis, mais cela fonctionne si je declare ce membre comme pointeur : B *m_b;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class A{ class B; B m_b; public: A(); }; class A::B { int m_memb; public: B(int i) : m_memb(i) {} };
J'aimerai savoir si je suis obligé de le declarer en pointeur, ou d'ecrire la definitions de ma class B dans la class A.
J'ai trouvé que tres peu d'info sur l'imbrication de class sur le net, merci de bien vouloir m'aider
Partager