Problème surcharge comparaison
BOnjour,
Toujours dans le cadre d'un projet à rendre je dois effectuer un operateur == pour une classe appelé personnel
Je codes donc ma classe comme suite
personnel.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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| #ifndef _personnel_H
#define _personnel_H
#include <iostream>
using namespace std;
//classe personnel
class personnel {
protected:
//reservation de nom pour les chars
char *nom;
char *prenom;
int tel;
public:
//constructeur par défaut
personnel();
//constructeur personnel
personnel(char* ,char* ,int);
//destructeur
~personnel();
//modifie le numéro de téléphone
int modiftel(int);
//verifie si la personne passé en paramètre est identique à l'objet cible
bool operator ==(const personnel &);
//permet l'affectation
void operator = ( personnel &);
//affiche
friend ostream & operator << (ostream &, const personnel &);
//saisie
friend istream & operator >> (istream &, personnel &);
};
#endif |
La définition de la surcharge operateur ==
personnel.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
| bool Personne::operator==(const Personne& p)
{
if(strcmp(this->nom, p.nom) == 0)
if(strcmp(this->prenom, p.prenom) == 0)
if(this->tel == p.tel)
return true;
return false;
}
void Personne::operator=(const Personne& p)
{
this->nom = p.nom;
this->prenom = p.prenom;
this->tel = p.tel;
} |
Je fais un test comme ceci:
main.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| int main()
{
//constructeur spécialisé
personnel p1("coudou","ben",223);
//on teste la modification du num tel
p1.modiftel(456);
personnel p2("coudou","ben",345);
//on compare en testant la surcharge
if (p1 == p2)
{
cout << "p1==p2" ;
}
else
{
cout << "p1!= p2";
}
} |
Le problème est que cela ne m'affiche pas de résultat. Je n'ai rien à l'affichage alors qu'il devrait afficher p1!=p2!!
Je compares pourtant deux objets.
Où est je fais un erreur????
Je vous remercie d'avance pour votre aide.