Bonjour à tous,
Je suis actuellement en train d'apprendre le C++ et après de nombreuses heures à chercher, je vous demande de l'aide...
Pour résumer, je chercher à comparer deux objets appartenant à la même classe "Duree" afin de verifier si les deux durées identiques.
Contenu du fichier Duree.h :
Contenu du fichier Duree.cpp :
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 #ifndef DEF_DUREE #define DEF_DUREE class Duree { public: // Constructeur de la classe Duree(int heures = 0, int minutes = 0, int secondes = 0); // Opérateur de comparaison pour vérifier que les deux objets de la classe Duree sont égaux avec le symbole "==" bool operator==(Duree const& a, Duree const& b); bool Duree::estEgal(Duree const& b) const; private: int m_heures; int m_minutes; int m_secondes; }; #endif
Contenu main.cpp :
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 #include "Duree.h" using namespace std; // Constructeur de la classe Duree Duree :: Duree(int heures, int minutes, int secondes) : m_heures(heures), m_minutes(minutes), m_secondes(secondes) { } // Opérateur de comparaison pour vérifier que les deux objets de la classe Duree sont égaux avec le symbole "==" bool operator==(Duree const& a, Duree const& b) { return a.estEgal(b); } bool Duree::estEgal(Duree const& b) const { //Teste si a.m_heure == b.m_heure etc. return (m_heures == b.m_heures && m_minutes == b.m_minutes && m_secondes == b.m_secondes); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include "Duree.h" int main() { Duree duree1(0, 10, 28), duree2(0, 10, 28); if (duree1 == duree2) cout << "Les durees sont identiques"; else cout << "Les durees sont differentes"; return 0; }J'espère que vous verrez s'il y a problème dans mon code, si vous avez besoin de plus d'infos je reste à votre dispositionEt quand je compile mon projet, j'obtiens cette erreur :
/usr/bin/g++ -c "/home/djaws/Projects/OpenClassRooms/OpenClassRooms/OpenClassRooms/Duree.cpp" -g -O0 -Wall -o ./Debug/Duree.cpp.o -I. -I.
/usr/bin/g++ -c "/home/djaws/Projects/OpenClassRooms/OpenClassRooms/OpenClassRooms/main.cpp" -g -O0 -Wall -o ./Debug/main.cpp.o -I. -I.
In file included from /home/djaws/Projects/OpenClassRooms/OpenClassRooms/OpenClassRooms/main.cpp:1:
/home/djaws/Projects/OpenClassRooms/OpenClassRooms/OpenClassRooms/Duree.h:11:48: error: 'bool Duree::operator==(const Duree&, const Duree&)' must have exactly one argument
bool operator==(Duree const& a, Duree const& b);
In file included from /home/djaws/Projects/OpenClassRooms/OpenClassRooms/OpenClassRooms/Duree.cpp:1:
/home/djaws/Projects/OpenClassRooms/OpenClassRooms/OpenClassRooms/Duree.h:11:48: error: 'bool Duree::operator==(const Duree&, const Duree&)' must have exactly one argument
bool operator==(Duree const& a, Duree const& b);
Djaws
"I like being weird. Weird's all i've got.
That, and my sweet style" - Maurice Moss.
Partager