Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3006 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  (résolu) surcharge operateur <<

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

(résolu) surcharge operateur <<

n°1260504
juju286
Posté le 06-12-2005 à 19:57:00  profilanswer
 

Bonsoir.
J'ai 2 classes, Adresse et Personne. Parmi les membres de Personne, j'ai une Adresse :
 

Code :
  1. class Personne {
  2.   private:
  3.     string nom;
  4.     string prenom;
  5.     Adresse adr;
  6.    /* ... */
  7. };


 
Je surcharge l'opérateur << dans la classe Adresse, aucun problème à ce niveau.
Mais lorsque je veux le surcharge dans la classe Personne, tous les attributs s'affichent sauf l'adresse justement.
 

Code :
  1. ostream& operator<<(ostream& os, const Personne& p)
  2. {
  3.   os << p.nom << ' ' << p.prenom << '\n'
  4.        << p.adr;
  5.   return os;


 
quand je fais

Code :
  1. cout << p << endl;


 
(où p est Personne) j'ai le nom, le prenom, et un blanc à la place de l'adresse.


Message édité par juju286 le 07-12-2005 à 12:54:22
mood
Publicité
Posté le 06-12-2005 à 19:57:00  profilanswer
 

n°1260549
juju286
Posté le 06-12-2005 à 21:12:06  profilanswer
 

Code :
  1. #ifndef _ADRESSE_H
  2. #define _ADRESSE_H
  3. #include <string>
  4. #include <iostream>
  5. using namespace std;
  6. class Adresse {
  7. private:
  8.   string rue;
  9.   int code_postal;
  10.   string ville;
  11. public:
  12. /* ... */
  13. friend ostream& operator<<(ostream&, const Adresse& );
  14. };
  15. #endif


 

Code :
  1. ostream& operator<<(ostream& os, const Adresse& a)
  2. {
  3.   os << a.rue << '\n' << a.code_postal << ' ' << a.ville;
  4.   return os;
  5. }


 
et voila la classe Personne, avec l'opérateur << :

Code :
  1. #ifndef _PERSONNE_H
  2. #define _PERSONNE_H
  3. #include "adresse.h"
  4. #include <string>
  5. #include <iostream>
  6. using namespace std;
  7. class Personne {
  8. private:
  9.   string nom;
  10.   string prenom;
  11.   Adresse adr;
  12. public:
  13. /* ...*/
  14.   friend ostream& operator<<(ostream&, const Personne& );
  15. };
  16. #endif


l'opérateur << :

Code :
  1. ostream& operator<<(ostream& os, const Personne& p)
  2. {
  3.   os << p.nom << ' ' << p.prenom << '\n'
  4.        << p.adr;
  5.   return os;
  6. }


n°1260741
Taz
bisounours-codeur
Posté le 07-12-2005 à 09:47:01  profilanswer
 

PAS DE FRIEND PUTAIN !

n°1260773
juju286
Posté le 07-12-2005 à 10:53:45  profilanswer
 

ah oui c'était ca merci de ta réponse

n°1260797
juju286
Posté le 07-12-2005 à 11:22:29  profilanswer
 

pour l'instant j'utilise friend, c'est comme ca, et quand j'aurais avancé j'utiliserais une meilleure méthode. Mais pour l'instant j'en suis là et j'aimerais bien qu'on m'aide. merci

n°1260831
godbout
Génial.
Posté le 07-12-2005 à 11:58:42  profilanswer
 

Taz a écrit :

PAS DE FRIEND PUTAIN !


Citation :

bisounours-codeur


[:mlc]
 
Ceci dit le topic est intéressant [:ocube]
J'attends moi aussi la réponse.

n°1260903
juju286
Posté le 07-12-2005 à 12:53:08  profilanswer
 

faute de frappe dans un constructeur de adresse...  :whistle:  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  (résolu) surcharge operateur <<

 

Sujets relatifs
Question sur commondialog [ résolu ][Resolu]basename sous vbe
[C] Problemes rand() [résolu][Resolu] Ajouter source ODBC
[PHP][Résolu] Problème de suppression...Problème avec split et tableau [résolu]
[Résolu] Redéfinition de l'operateur << pour ofstream[Résolu]Ajouter des lignes a un tableau par génération interne
[Résolu] Numéro d'erreur de listing de répertoire ? 
Plus de sujets relatifs à : (résolu) surcharge operateur <<


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR