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.V MLK816 5 1.2
Nous avons plusieurs méthodes virtuelles dont celle-ci :
Cette ligne de code fait appel à la fonction EstValide :
Code : Sélectionner tout - Visualiser dans une fenêtre à part virtual bool EstValide() const;
Vue qu'il y'a 4 fonctions "EstValide" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (!Modele.EstValide()) return false;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 bool CVehicule::EstValide() const { return (strlen(Immatriculation()) >= 5) && (NombrePlaces() >= 1); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 bool CVoiture::EstValide() const { return (CVehicule::EstValide()) && (VolumeMarchandise() > 0.0); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 bool CCamion::EstValide() const { return (CVehicule::EstValide()) && (VolumeMarchandise() > 0.0) && (PoidsMarchandise() > 0.0); }je me demandais comment il pouvait aller sur la bonne fonction directement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 bool CBus::EstValide() const { return (CVehicule::EstValide()) && (NombreRangs() > 0); }
Il va donc directement sur cette fonction :
Car s'est une voiture.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 bool CVoiture::EstValide() const { return (CVehicule::EstValide()) && (VolumeMarchandise() > 0.0); }
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
Partager