error C2804: trop de paramètres pour l'opérateur binaire 'operator +'
Bonjour,
Je suis un debutant en C++. J'apprends le c++ par moi meme. Puis, c'est la premiere fois que je fais des programme oriente d'objet(POO). Je travaille avec les operator(). Il y a une erreur qui affiche qu'il a trop de paramètres pour l'opérateur binaire 'operator +'. Quelqu'un peux me dire pourquoi svp.
Merci d'avance & passe un joyeux noel
Temps.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #ifndef DEF_TEMPS
#define DEF_TEMPS
/* Creation de la classe temps qui me permettera de calculer du temps avec le temps */
class Temps
{
/* Les attributs du temps */
private:
int m_semaine;
int m_jour;
int m_heure;
int m_minute;
int m_seconde;
int m_secondeAbsolu;
/* Action que le temps peut faire */
public:
Temps(int heure = 0,int minute = 0, int seconde = 0);
void balancer();
int get_secondeAbsolu() const;
Temps operator+(Temps const& a, Temps const& b);
};
#endif |
Temps.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| #include "Temps.h"
#include <iostream>
using namespace std;
// Construction du temps
Temps::Temps(int heure,int minute, int seconde)
{
//Placer les parametre dans les arguments
m_heure = heure;
m_minute = minute;
m_seconde = seconde;
//Calculer les secondes Absolus
//Si l'heure(en parametre) est plus que 0
if(heure > 0)
{
//A chaque 1 heure(en parametre), la seconde absolu gagne 3600
while(heure > 0)
{
heure -= 1;
m_secondeAbsolu += 3600;
}
}
//Si la minute(en parametre) est plus grand que 0
if(minute > 0)
{
//A chaque 1 minute(en parametre), la seconde absolu gagne 60.
while(minute > 0)
{
minute -= 1;
m_secondeAbsolu += 60;
}
}
//Rajouter le nombre de seconde dans la seconde absolu
m_secondeAbsolu += seconde;
balancer();
}
void Temps::balancer()
{
if(m_seconde > 60)
{
while(m_seconde > 60)
{
m_seconde -= 60;
m_minute += 1;
}
}
if(m_minute > 60)
{
while(m_minute > 60)
{
m_minute -= 60;
m_heure += 1;
}
}
if(m_heure > 24)
{
while(m_heure > 24)
{
m_heure -= 24;
m_jour += 1;
}
}
if(m_jour > 7)
{
while(m_jour > 7)
{
m_jour -= 7;
m_semaine += 1;
}
}
}
int Temps::get_secondeAbsolu() const
{
return m_secondeAbsolu;
}
Temps operator+(Temps const& a, Temps const& b)
{
int copieA(a.get_secondeAbsolu());
int copieB(a.get_secondeAbsolu());
int tempsTotal(copieA+copieB);
Temps total(0,0,tempsTotal);
return total;
} |
main.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11
| #include <iostream>
#include "Temps.h"
using namespace std;
int main()
{
Temps X(23,45,56);
Temps Y(67,187,555);
system("pause");
return 0;
} |