Salut,
Je dispose d'une classe ayant pour membre ces jolies petites bêtes :
array_EditBoxes va à la fois contenir des CComboBox et des CEdit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CEdit* pEdit; CComboBox* pCombo; CObArray* array_EditBoxes;
Se pose alors un problème concernant le destructeur, il faut vérifier le type de l'élement contenu dans array_EditBoxes avant de le déléter, ou est-ce que je me trompe ?
Voila ce que j'ai pour l'instant :
Et résultat des course lors de la fermeture de mon application j'ai le droit à un beau bug mémoire...
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 CDynamicForm::~CDynamicForm() { for (int i=0; i <array_EditBoxes->GetSize() ; i++ ) { if (array_EditBoxes->GetAt(i)->IsKindOf(RUNTIME_CLASS(CEdit))) { pEdit = (CEdit *)array_EditBoxes->GetAt(i); delete pEdit; } if (array_EditBoxes->GetAt(i)->IsKindOf(RUNTIME_CLASS(CComboBox))) { pCombo = (CComboBox *)array_EditBoxes->GetAt(i); delete pCombo; } } array_EditBoxes->RemoveAll(); delete array_EditBoxes; }
"array_EditBoxes->GetAt(i)->" étant un CObject faut-il transtyper absolument vers un CEdit ou un CComboBox ? (j'ai essayé mais j'ai toujours mon bug mémoire...)
Que faire ???
Merci d'avance
Partager