IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Polymorphisme sans succès


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 72
    Points : 57
    Points
    57
    Par défaut Polymorphisme sans succès
    Bonjour,

    J'ai une classe étudiant qui contient des cours dans un vecteur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    class Etudiant
    {
    public:
    	Etudiant (int noEtudiant,
    		const std::string& nom,
    		const std::string& prenom);
     
    	int reqnoEtudiant() const;
    	std::string reqNom() const;
    	std::string reqPrenom() const;
     
    	// nouveaux
    	void ajouterCours (const Cours& nouveauCours);
    	std::string reqReleves() ;
     
    	~Etudiant();
    private:
    	int m_noClient;
    	std::string m_nom;
    	std::string m_prenom;
    	std::vector<Cours*> m_vCours;
    };
    La classe cours virtuelle pure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    class Cours
    {
    public:
    	Cours (unsigned int noCours,
    	double note);
     
    	std::string reqCoursFormate() const;
     
    	virtual Cours* clone() const=0;
     
    private:
     
    	unsigned int m_noCours;
    	double m_note;
     
    };
    Classe Math qui hérite de cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class Math : public Cours
    {
    public:
    	Math (unsigned int noCours,
    	double note);
     
    	std::string reqCoursFormate() const;
     
    	virtual Cours* clone() const;
    };
    Dans la classe cours voici le code pour afficher le contenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    std::string Cours::reqCoursFormate() const
    {
    	ostringstream os;
    		os << "Numero                   : " << reqNoCompte() << endl
    		   << "Note                     : " << reqNote() << endl;
    		return os.str();
    }
    Dans la classe math voici le code pour afficher le contenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    std::string Math::reqCoursFormate() const
    {
    	ostringstream os;
    			os << "Cours Math" << endl
    				<< Cours::reqCompteFormate() << endl;
    			return os.str();
    }

    Dans mon étudiant, quand j'ajoute un cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_vCours.push_back(nouveauCours.clone());
    J'essais d'afficher le contenu en bouclant de la facon suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout << m_vCours[i]->reqCoursFormate();
    Si je crée un objet math, c'est toujours la méthode du cours qui est appelé et jamais celle de math.

    Qqn sait pourquoi ?

    Merci de votre aide.

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    Dans la classe Cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::string reqCoursFormate() const;
    Il ne manquerait pas un virtual à tout hasard?

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 72
    Points : 57
    Points
    57
    Par défaut
    Effectivement c'est mon problème... J'en avais mis un mais j'avais eu une erreur de compil. Je sais pas comment je l'avais mis mais la ca fonctionne.

    Un gros Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Atteindre une fonction d'un autre formulaire (sans succès)
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/04/2009, 15h15
  2. Réponses: 9
    Dernier message: 05/11/2008, 09h37
  3. CorruptedStreamException! j'ai tout essayé sans succès.
    Par shaka.zulu dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 13/05/2008, 09h21
  4. lecture et ecriture sur un meme /dev/pty sans succes
    Par pcouas dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 13/04/2007, 18h25
  5. alternatives aux curseurs sans succès
    Par maxtin dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 21/09/2006, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo