Bonjour,
J'ai besoin de faire un lien entre deux objets diff�rents. C'est-�-dire qu'en partant d'un j'aimerais pouvoir atteindre l'autre et vice versa.
Il y a quand m�me une hi�rarchie. Voila comment je m'y suis pris :
Child.hpp
Parent.hpp
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 class Parent; // Forward declaration (enfin j'imagine) class Child { private: Parent * m_myParent; public: Child (void); ~Child (void); setParent (Parent * myParent); /* Cette méthode ne devrait pas être appelée de manière publique (d'ailleurs ca m'ennuie un peu cette construction) */ Parent * getParent (void); }
Donc l'id�e, c'est que quand j'ai un Parent, je lui attache un Child avec la m�thode attachChild(). Dans cette m�thode, j'appel setParent(this) pour cr�er le lien de Child vers Parent.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include "Child.hpp" class Parent { private: std::vector< Child * > m_children; public: Parent (void); ~Parent (void); bool attachChild (Child * oneChild); // Appel de oneChild->setParent(this); }
Par contre, quand j'utilise getParent(), j'ai directement dans la m�thode une "segmentation fault" au moment du "return m_myParent;"
Alors j'imagine que la mani�re dont je m'y prend doit �tre bancale.
Mais comment peut-on faire ce genre de m�canisme ?
Merci d'avance.
Partager