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

  FORUM HardWare.fr
  Programmation
  C++

  [c++]surcharge d'operateur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c++]surcharge d'operateur

n°301950
bol972
Posté le 05-02-2003 à 04:49:59  profilanswer
 

voila j'essaie de faire une classe et d'uliser les surchage d'operateur
mais elle ne fonctionne pas  :(  
pouvez vous me dire pourquoi elle est bancale
[cpp]
code dans le dernier post/cpp]


Message édité par bol972 le 06-02-2003 à 04:35:51

---------------
http://www.independza.com
mood
Publicité
Posté le 05-02-2003 à 04:49:59  profilanswer
 

n°301963
gloop
Posté le 05-02-2003 à 07:31:43  profilanswer
 

bol972 a écrit :


Code :
  1. bool date operator ==( const date& F)(
  2. date.s;
  3. if(s.anne>f.anne)
  4. {return(s);}
  5. else
  6. { if(s.mois>f.mois)
  7.      (return(s);}
  8.     else
  9.        {
  10.          if(s.jour>f.jour)
  11.            {return(s);)
  12.        }
  13. return(F);
  14. }
  15. }




faut comparer par rapport à this. ici tu crées s et tu le compares à f. tu peux pas non plus retourner s ou f, faut un booléen (true/false).
 

bol972 a écrit :


Code :
  1. iostream& operator<<( iostream& flux,Date& D)
  2. //surchage de l'operateur
  3. {
  4. cout<<"entrez le jours.\n";
  5. flux>>D.jour;
  6. cout<<"entrez  le mois.\n";
  7. flux>>D.mois;
  8. cout<<"entrez l'année.\n";
  9. flux>>D.année;
  10. return(flux);
  11. };




pour flux utilise pas un iostream mais un istream
 

bol972 a écrit :


Code :
  1. iostream& operator>>( ostream& flux,Date& D)
  2. //surchage de l'operateur
  3. {
  4. cout<<"entrez le jours.\n";
  5. flux>>D.jour;
  6. cout<<"entrez  le mois.\n";
  7. flux>>D.mois;
  8. cout<<"entrez l'année.\n";
  9. flux>>D.année;
  10. return(flux);
  11. } ;




celui est totalement faux, tu écris dans un ostream
 
Dernier conseil: achéte un bouquin


Message édité par gloop le 05-02-2003 à 07:32:42
n°302848
bol972
Posté le 06-02-2003 à 04:33:58  profilanswer
 

j'ai deja un bouquin et des cours je suis en licence d'info j'ai pas fais de dev l'annee dernière mais du reseau.
voila la class sans erreur j'ai essaye de faire un tri avec une fonction tri bulle
ca n'as pas l'air de fonctionner
si je veux faire passage par reference  
je dois bien ecrire  
EX int & x ; ?

Code :
  1. void tri_bull(date &tableau[],int size)
  2. {
  3. int inversion;
  4. date c;
  5. do
  6. {
  7.   inversion=0;
  8.     for(int i=0;i<size;i++)
  9.        {
  10.           if (tableau[i]>tableau[i+1])
  11.              {
  12.              c=tableau[i];
  13.              tableau[i]=tableau[i+1];
  14.              tableau[i+1]=c;
  15.              inversion=1;
  16.              }
  17.        }
  18. while(inversion==0);
  19. };


Code :
  1. #include <iostream.h>
  2. #include <istream.h>
  3. #include <string>
  4. class date{
  5. public :
  6. date ();
  7. date(int x,int y,int z);
  8. void tri_bull(date &tableau[],int size) ;// trie le tableau
  9. bool operator>(const date& F);
  10. ~date();
  11. friend ostream& operator<<(ostream&,const date& D);
  12. friend istream& operator>>(istream&,date& D);
  13. private:
  14. int jour;
  15. int mois;
  16. int annee;
  17. };
  18. // déclaration des métodes
  19. date::date()    // constructeur par defaut
  20. {
  21. jour=1;
  22. mois=1;
  23. annee=2003;
  24. };
  25. date::date(int x,int y,int z)// mon prof mets de construteurs par assignation mais a quoi ca sert ?
  26. {
  27. x= jour;
  28. y= mois;
  29. z= annee;
  30. };
  31. void tri_bull(date &tableau[],int size)
  32. {
  33. int inversion;
  34. date c;
  35. do
  36. {
  37.   inversion=0;
  38.     for(int i=0;i<size;i++)
  39.        {
  40.           if (tableau[i]>tableau[i+1])
  41.              {
  42.              c=tableau[i];
  43.              tableau[i]=tableau[i+1];
  44.              tableau[i+1]=c;
  45.              inversion=1;
  46.              }
  47.        }
  48. while(inversion==0);
  49. };
  50. bool date::operator>(const date& F)
  51. {
  52.    if(this->annee > F.annee)
  53.    {
  54.    return true;
  55.    }
  56.    else if ( this->mois > F.mois && this->annee == F.annee)
  57.    {
  58.    return true ;
  59.    }
  60.    else if (this->jour > F.jour && this-> mois == F.mois)
  61.    {
  62.    return true ;
  63.    }
  64.    else return false;
  65. };
  66. ostream& operator<<(ostream& flux,const date& D)
  67. {
  68. return flux <<D.jour<<"/"<<D.mois<<"/"<<D.annee<<"\n";
  69. };
  70. istream& operator>>(istream& flux,date& D)
  71. {
  72. cout<<"entrez le jours.\n";
  73. flux>>D.jour;
  74. cout<<"entrez le mois.\n";
  75. flux>>D.mois;
  76. cout<<"entrez l'année.\n";
  77. flux>>D.annee;
  78. return flux;
  79. };


---------------
http://www.independza.com
n°302853
Musaran
Cerveaulté
Posté le 06-02-2003 à 06:01:24  profilanswer
 

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

  [c++]surcharge d'operateur

 

Sujets relatifs
comment déclarer un nouvel operateur ?Comment faire l'opérateur "différent" sous VBA...
operateur new de placement.[PHP] Surcharge déclaration de fonctions
[VB] opérateur New avec objet Winsock...[VB] opérateur équivalents à "And Then" et "Or Else"
problème d'opérateur logique[C++ Opérateur bit à bit] << et >>
[C++] j ai un doute, peut on redefinir l operateur ">" (superieur)[C++] Question sur l'héritage et la surcharge de méthodes virtuelles.
Plus de sujets relatifs à : [c++]surcharge d'operateur


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