Bonjour tout le monde!

J'ai un problème que je n'arrive pas à m'expliquer.

J'ai une classe A qui contient un pointeur sur une classe B. Cette classe B contient un pointeur sur la classe A...
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
 
class A
{
 B* m_bPtr;
public:
  A() {
    B(this);
  }
};
 
class B
{
  A* m_aPtr;
public:
  B(A* aPtr): m_aPtr(aPtr) {}
};
Mon problème est le suivant:

Au cours de l'exécution de mon code, pendant une opération qui ne touche ni à la classe A ni à la classe B, le pointeur de la classe A situé dans la classe B change sans aucune raison.

Sans parler d'un problème (évident?) de conception, je ne comprends ce genre de comportement.

Avez-vous des idées?

Merci d'avance.