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 okvoici un petit exemple:
dans main.h :
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 class classeA { public: int entierA; void creerObjet(classeA **p); void libererMem(classeA **p); }; class classeB { public: classeA *m_pClasseA; //Pointeur membre sur classeA };
Apparement ce petit programme fonctionne mais, n'étant pas un guru du c++ j'aimerais
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; }
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
Partager