Problème lors de la comparaison entre deux objets C++
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 :
Code:
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 du fichier Duree.cpp :
Code:
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);
} |
Contenu main.cpp :
Code:
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;
} |
Citation:
Et 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);
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 disposition
Djaws
"I like being weird. Weird's all i've got.
That, and my sweet style" - Maurice Moss.