Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème tuto surchage d'opérateur

afficher()

    3 août 2008 à 17:32:26

    Bonjour à tous!
    Voila mon problème:
    Je suis dans le chapitre des surcharges d'opérateurs, et pour être encore plus précis je viens de terminer la partie "les opérateurs arithmétiques".
    J'ai terminer d'écrire mon programme, vers les dernieres lignes d'affichage de la durée, et quand je m'apprete à lance la compilation, la un bug: "Undefined reference to 'Duree::aficher()'.

    Donc je sais pas, je vous transmet mon main.cpp en esperans que vous pourrez m'aider.

    #include <iostream>
    #include <string>
    #include "duree.h"
    
    using namespace std;
    
    int main()
    {
        Duree duree1(0, 10, 28), duree2(0, 15, 2);
        Duree resultat;
    
        duree1.afficher();
        cout << "+" << endl;
        duree2.afficher();
    
        resultat = duree1 + duree2;
    
        cout << "=" << endl;
        resultat.afficher();
    
        return 0;
    }
    


    Et mon fichier header (duree.h) par la même occasion:

    #ifndef DEF_DUREE
    #define DEF_DUREE
    
    class Duree
    {
        public:
    
        Duree(int heures = 0, int minutes = 0, int secondes = 0);
        Duree operator+(const Duree &duree);
        void afficher();
    
        private:
    
        int m_heures;
        int m_minutes;
        int m_secondes;
    
    };
    
    #endif
    
    • Partager sur Facebook
    • Partager sur Twitter
      3 août 2008 à 17:52:10

      Tu devrais poster duree.cpp, c'est là que doit se trouver l'erreur. Ton compilo ne trouve pas la fonction afficher(), est-ce que tu as bien écrit
      void Duree::afficher() {
         // ta fonction afficher()
      }
      


      EDIT : balises code
      • Partager sur Facebook
      • Partager sur Twitter
        3 août 2008 à 18:11:58

        C'est bon j'ai reussi a compiler, effectivement j'avais oublier ma fonction dans duree.cpp, cependant maintenant c'est la variable duree qui ne s'affiche pas (il n'y que le "+" et le "=" qui s'affiche).

        Voila mon duree.cpp:

        #include <iostream>
        #include "duree.h"
        
        using namespace std;
        
        Duree::Duree(int heures, int minutes, int secondes) : m_heures(heures), m_minutes(minutes), m_secondes(secondes)
        {
        }
        
        Duree Duree::operator+(const Duree &duree)
        {
            int heures = m_heures;
            int minutes = m_minutes;
            int secondes = m_secondes;
        
            secondes += duree.m_secondes;
            minutes += secondes / 60;
            secondes %= 60;
        
            minutes += duree.m_minutes;
            heures += minutes /60;
            minutes %= 60;
        
            heures += duree.m_heures;
        
            Duree resultat(heures, minutes, secondes);
            return resultat;
        }
        
        void Duree::afficher()
        {
            cout;
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
          3 août 2008 à 18:20:35

          C'est normal, il n'y a rien dans ta fonction afficher() ! !
          Il faudrait y mettre quelque chose pour qu'elle fasse quelque chose ;) Genre :
          cout<<m_heures<<":"<<m_minutes<<":"<<m_secondes<<endl ;
          
          • Partager sur Facebook
          • Partager sur Twitter
            4 août 2008 à 17:52:05

            Lol logique... Niquel sa marche, merci beaucoup pour l'aide (qui a été très rapide aussi, merci).
            • Partager sur Facebook
            • Partager sur Twitter

            Problème tuto surchage d'opérateur

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown