Porbleme facile cpp

leroiloup Messages postés 4 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 19 avril 2009 - 18 déc. 2008 à 11:59
ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 - 18 déc. 2008 à 12:24
ce programme ne m'affiche rient

#include
#include<string.h>
#include<conio.h>
using namespace std;
class Ahmed
{
      public:
         Ahmed(){};
             virtual void aff(){ cout<<"ahmed"<<endl;}
             void aff1(){ cout<<"ahmed1"<<endl;}
             };

class Adel :public Ahmed
{
      public:
             Adel(){};
             void aff(){ cout<<"adel"<<endl;}
             void aff1(){ cout<<"adel"<<endl;}

};

int main()
{
    int i;
    Ahmed **a;
    for(i=0;i<10;i++)
    {
    a[i]=new Adel;
    }
    for(i=0;i<10;i++)

    a[i]->aff();

    getch();
    return 0;
}

4 réponses

fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
18 déc. 2008 à 12:13
j'ai toujours eu un peu de mal avec la virtualité mais pourquoi tu fais ca ?

Ahmed **a;
et
a[i]=new Adel;

Je driais que l'inverse est correct. Attendons confirmation d'une personne un peu plus calée que moi en cpp.
0
ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
18 déc. 2008 à 12:21
Ahmed **a = new Ahmed *[10];

A la fin ne pas oublier

for(i=0;i<10;i++)
   delete a[i];

delete []a;
0
ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
18 déc. 2008 à 12:22
Ahmed **a = new Ahmed *[10];

A la fin ne pas oublier :

for(i=0;i<10;i++)
   delete a[i];

delete []a;
0
ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
18 déc. 2008 à 12:24
a[i]=new Adel; est correct car Adel dérive de Ahmed.
0
Rejoignez-nous