Question sur les fonctions virtuelles
Bonjour tout le monde,
Nous avons appris cette semaine les classes virtuelles, en tout cas le début.
J'ai un programme qui lit les lignes d'un fichier txt, une par une.
Il lit la première ligne :
V pour voiture, MLK816 s'est l'immatriculation, 5 s'est le nombre de place et 1.2 s'est le volume transportable de marchandise.
Nous avons plusieurs méthodes virtuelles dont celle-ci :
Code:
virtual bool EstValide() const;
Cette ligne de code fait appel à la fonction EstValide :
Code:
if (!Modele.EstValide()) return false;
Vue qu'il y'a 4 fonctions "EstValide" :
Code:
1 2 3 4
| bool CVehicule::EstValide() const
{
return (strlen(Immatriculation()) >= 5) && (NombrePlaces() >= 1);
} |
Code:
1 2 3 4
| bool CVoiture::EstValide() const
{
return (CVehicule::EstValide()) && (VolumeMarchandise() > 0.0);
} |
Code:
1 2 3 4
| bool CCamion::EstValide() const
{
return (CVehicule::EstValide()) && (VolumeMarchandise() > 0.0) && (PoidsMarchandise() > 0.0);
} |
Code:
1 2 3 4
| bool CBus::EstValide() const
{
return (CVehicule::EstValide()) && (NombreRangs() > 0);
} |
je me demandais comment il pouvait aller sur la bonne fonction directement.
Il va donc directement sur cette fonction :
Code:
1 2 3 4
| bool CVoiture::EstValide() const
{
return (CVehicule::EstValide()) && (VolumeMarchandise() > 0.0);
} |
Car s'est une voiture.
Qu'est-ce qu'il lui dit que s'est bien une voiture ?
Le but de ma question est d'essayer de comprendre les fonctions virtuelles.
Je vous laisse mon code au cas où.
Merci d'avance pour votre aide et bon Dimanche.
beegees