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 MLK816 5 1.2
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 : Sélectionner tout - Visualiser dans une fenêtre à part
	virtual bool		EstValide() const;
Cette ligne de code fait appel à la fonction EstValide :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
	if (!Modele.EstValide()) return false;
Vue qu'il y'a 4 fonctions "EstValide" :

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);
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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