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
La définition de la surcharge operateur ==
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
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
personnel.cpp
Je fais un test comme ceci:
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
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; }
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
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.
Partager