Heritage en c++
Résolu/Fermé
A voir également:
- Heritage en c++
- Texte de don d'héritage ✓ - Forum Vos droits sur internet
- Valise maison heritage avis ✓ - Forum Consommation & Internet
- Maison héritage canapé avis - Forum Vos droits sur internet
- Cheick yvan formate héritage - Forum Vos droits sur internet
- Arnaque canapé ✓ - Forum Vos droits sur internet
4 réponses
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
6 juin 2008 à 20:59
6 juin 2008 à 20:59
tu créee un tableau de classes mère "case generique", mais dedan, tu y rentre des classees genre "classe gare" ou "classe terrain" ....
c'est le polymorphisme...
c'est le polymorphisme...
ah oui, il n'y a pas une histoire avec les "new" ??
Peut tu me mettre un exemple de codage qui illustre cette notion, par exemple avec mon histoire de monopoly.
Merci beaucoup, je vais quand même aller fouiller avec google sur le polymorphisme.
Peut tu me mettre un exemple de codage qui illustre cette notion, par exemple avec mon histoire de monopoly.
Merci beaucoup, je vais quand même aller fouiller avec google sur le polymorphisme.
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
6 juin 2008 à 21:12
6 juin 2008 à 21:12
class case{
case();
~case();
char nom[20];
virtual void action()=0;
};
class gare:public case{
gare();
void action();
}
class terrain:public case{
gare();
void action();
}
case* plateau[40];
plateau[0]=new terrain;
plateau[1]=new gare;
...
le virtual sur la fonctuion, ca veut dire que tu autorise la réécriture de cette fonction dans les classes filles. le =0 a la fin, ca veut dire :
1- ta classe est abstraite, car tu as une methode virtuelle pure (celle avec le =0)
2- tu sera obligé de réecrire cette methode dans tes classes files
3- tu n'aura pas le droit d'instancier cette classe (case macase; //interdit!)
case();
~case();
char nom[20];
virtual void action()=0;
};
class gare:public case{
gare();
void action();
}
class terrain:public case{
gare();
void action();
}
case* plateau[40];
plateau[0]=new terrain;
plateau[1]=new gare;
...
le virtual sur la fonctuion, ca veut dire que tu autorise la réécriture de cette fonction dans les classes filles. le =0 a la fin, ca veut dire :
1- ta classe est abstraite, car tu as une methode virtuelle pure (celle avec le =0)
2- tu sera obligé de réecrire cette methode dans tes classes files
3- tu n'aura pas le droit d'instancier cette classe (case macase; //interdit!)