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
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);
}
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
 
#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);
}
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.

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.