cs_benroger
Messages postés1Date d'inscriptiondimanche 6 novembre 2005StatutMembreDernière intervention30 août 2006
-
30 août 2006 à 10:46
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 2008
-
30 août 2006 à 12:19
Bonjour à tous,
Je travaille actuellement sous Visual 2003.net, sous Windows XP.
J'ai developpé en C ++ une application SDI qui utilise une classe mère CMere qui contient une fonction virtuelle pure void Infos(void). J'ai également une classe CFille dérivée de CMere dans laquelle je définis la fonction void Infos(void).
Ces 2 classes sont utilisées dans une fonction du Document. Dans cette fonction, j'alloue un tableau t de CFille. Voici le code de cette fonction :
void CEssaiDoc::OnTest()
{
CMere* t;
t= new CFille[3];
for
(
int
i=0;i<3;i++)
t[i].Infos();
delete
[] t;
}
Comme vous le voyez, ça n'a pas l'air bien méchant, mais à l'éxecution du programme, j'observe une erreur dans la boucle sur i :
Pour i = 0 : Tout se passe bien
Pour i = 1 : Erreur de lecture dans la mémoire.
Comme on peut s'en douter, ma question est d'où vient cette erreur ? Pourquoi, lorsque j'utilise le polymorphisme je n'arrive pas à utiliser correctement un tableau de CFille ?
Merci pour vos réponses ! J'espère avoir été complet dans me description, mais soyez indulgents, ce n'est jamais que mon premier message !
PS :
Pour information voici les codes sources (tres courts) des classes meres et filles :