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 : 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 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
#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 : 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;
}
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.