Salut,

Je dispose d'une classe ayant pour membre ces jolies petites bêtes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
CEdit*  pEdit;
CComboBox* pCombo;
CObArray* array_EditBoxes;
array_EditBoxes va à la fois contenir des CComboBox et des CEdit.

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 :
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;
}
Et résultat des course lors de la fermeture de mon application j'ai le droit à un beau bug mémoire...

"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