Bonjour,

Pour les besoins d'une application je suis confronté à un problème quelque peu tordu
J'ai 2 classes, classeA et classeB.
J'aimerais pouvoir créer (de façon dynamique) un objet de type classeA via un pointeur membre de classeB.
hum, bon ok voici un petit exemple:

dans main.h :
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
 
class classeA 
{ 
  public: 
    int entierA;  
    void creerObjet(classeA **p);
    void libererMem(classeA **p);  
};   
 
 
class classeB 
{  
  public:
     classeA *m_pClasseA;  //Pointeur membre sur classeA
};
dans main.cpp :
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
void classeA::creerObjet(classeA **p)
{
   *p = new classeA; //alloue de la mémoire pour un nouvel objet
   return; 
}
 
void classeA::libererMem(classeA **p)
{
   delete *p; //Libère la mémoire alloué
   return; 
}
 
 
int main(int argc, char *argv[])
{
  classeB *pCB = new classeB;//Créé un objet classeB via un pointeur
 
  pCB->m_pClasseA = 0;//initialise les membres
  pCB->entierB = 0;
 
  pCB->m_pClasseA->creerObjet(&(pCB->m_pClasseA));
  pCB->m_pClasseA->entierA = 56;// On peut maintenant accéder aux 
                                                   // membres du nouvel objet de type  
                                                   // classeA via un pointeur sur un objet 
                                                  //de type classeB
 
  pCB->m_pClasseA->libererMem(&(pCB->m_pClasseA));
  delete pCB;
 
  system("PAUSE"); 
  return 0;
}
Apparement ce petit programme fonctionne mais, n'étant pas un guru du c++ j'aimerais
savoir si cet exemple est correcte et si je peux m'en servir dans un programme plus conséquent sans courir de risques ?

D'avance merci

Tintin 72